2017-06-21 47 views
0

我有矩陣nXn。python中的JSON自動頭文件

我希望將其保存在JSON文件這樣的:

樣品基質:

12 1 
3 4 

樣品JSON:

{'1-1': '12','1-2': '1','2-1': '3','2-2':'4'} 

我想創建爲NxN矩陣自動標題等所示之前和我不知道如何做到這一點。

+0

你是如何存儲你的矩陣的那一刻? – cookiedough

+0

@OP,你確定你想要的值也是字符串嗎? –

回答

1
import json 
import collections 

data = [ [ 12,1], [3,4] ] 
dataDict = collections.OrderedDict() 

for i in range(0, len(data)): 
    for j in range(0, len(data[0])): 
     key = str(i+1) + '-' + str(j+1) 
     dataDict[key] = data[i][j] 

dataJson = json.dumps(dataDict) 
print dataJson 
+0

出錯:json_dict [str(i)+' - '+ str(j)] = str(matrix [i] [j]) TypeError:列表索引必須是整數或切片,而不是str – hila

+0

@hila您定義了json_dict作爲一個列表。它必須是字符串作爲鍵的字典。您必須按原樣使用解決方案或正確修改它 – thekenobe

0

假設你的矩陣在內存中,只是循環它。

import json 
json_dict = {} 
for i, arr in enumerate(matrix): 
    for j, element in enumerate(arr): 
     json_dict[str(i) + '-' + str(j)] = str(element) 

json.dump(json_dict, open('matrix.txt', 'w')) 
+0

錯誤:json_dict [str(i)+' - '+ str(j)] = str(matrix [i] [j]) TypeError:列表索引必須是整數或切片,而不是str – hila

+0

@hila Nope,它再次隨機數據並得到這個:'{'1-1':'-0.983531037784','1-0':'2.29816161846','0-0':'-1.75500730824','0-1':' -1.22495386805' }'。我認爲你傳遞的是你的數據中沒有顯示給我們的信息。 –

+0

@hila,我想你可能會在某處重用循環變量。真的很難只通過這一個錯誤,沒有別的。 –