2017-09-16 11 views
3

私はPythonにはかなり新しく、2つの配列や行列を辞書に登録してjsonファイルに保存しようとしていました。ここに私のコードは辞書をjsonのpythonに保存する

import numpy as np 
import json 
array_1 = np.array([[1,2,3],[4,6,7]]) 
array_2 = np.array([[4,0],[9,8]]) 
json_data = { 
    'array_1': array_1, 
    'array_2': array_2, 
} 

import json 

with open('json_data.json', 'wb') as fp: 
    json.dumps(json_data, fp) 

あるしかし、私は次のエラーを取得:

Object of type 'ndarray' is not JSON serializable

+0

'json'モジュールは、どのようにしてser 'list'、' dict'などのようなネイティブなPython型をializeする '' json_data''辞書に配列をPython 'list'sとして格納するか、' 'json.dumps''で呼び出される関数を自動的に変換を行います。 'json.dumps'の[default](https://docs.python.org/3/library/json.html#basic-usage)パラメータについて読んでください。 – larsks

答えて

5

まず、このようなPythonのリストに変換します。その後、

json_data = { 
    'array_1': array_1.tolist(), 
    'array_2': array_2.tolist() 
} 

として、それをダンプしてみてくださいjson:

import json 

with open('json_data.json', 'w') as fp: 
    json.dumps(json_data, fp) 
+0

それは私に次のエラーを与えます:dumps()は1つの位置引数をとりますが、2つは与えました – StudentOIST

+0

'open( 'json_data.json'、 'w')をfpとしてのみ動作させることができます: json.dump 、fp) ' – PRMoureu

+2

@smvpfm:' json.dumps() 'は文字列にダンプします。代わりに 'json.dump()'を使用してください。 – mhawke

関連する問題