2017-09-16 110 views
3

我對python很陌生,我試圖製作兩個數組或矩陣,將它們註冊到字典中,保存到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 ialize本地Python類型,如'list','dict'等。您需要將數組作爲Python'list'存儲在'json_data'字典中,或者寫一個由'json.dumps'調用的函數來自動進行轉換。閱讀[默認](https://docs.python.org/3/library/json.html#basic-usage)參數到'json.dumps'。 – 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

我只能使用'with open('json_data.json','w')作爲fp: json.dump(json_data ,fp)' – PRMoureu

+2

@smvpfm:'json.dumps()'轉儲爲一個字符串。改用'json.dump()'。 – mhawke