2017-06-20 65 views
0

美好的一天!我有關於python字典和json的問題!在一個文件我創建JSON字典具有這種結構:在python字典中添加新的鍵值。 jsom從另一個文件

{"face_1": {"face_rect": "(127, 68, 177, 177)", "Age": 1, "Gender": 1}} 

對於它使用此代碼(I - 面,(X,Y,W,H)的數 - 座標的矩形。):

for i, (x, y, w, h) in enumerate(faces): 
     face = dict() 
     face["face_{}".format(i + 1)] = {"face_rect": str((x, y, w, h)), "Age": 1, "Gender": 1} 
     with open('face.json', 'a') as fp: 
      data_to_write = json.dumps(face) 
      fp.write(data_to_write + '\n') 

之前這部分都很好。我的問題 - 我如何在另一個py文件中打開這個字典(face.json),然後改變'Age','Gender'的值並保存它? 謝謝你的時間!

+0

建議使用'json.load',因爲您已經知道'json.dumps' - 甚至可以直接使用'json.dump'作爲目標文件? B.t.w.因爲在代碼中只使用'i'作爲'i + 1',所以可以考慮從頭開始使用'... enumerate(faces,start = 1):'。 – Dilettant

回答

1

您可以使用json.load以加載字典:

with open('face.json') as fp: 
    data = json.load(fp) 

# Make some modifications here. 

然後,你可以保存數據再次使用json.dump

with open('face.json', 'w') as fp: 
    json.dump(data, fp) 

注意,沒有必要手動調用fp.writejson.dump已經爲你處理。另外,當打開文件時,您想使用'w'模式而不是'a',否則您不會覆蓋舊數據,而只是將新字典追加到最後。這也會使json格式無效。

相關問題