2017-10-25 9 views
-3

JSONディクショナリに新しい要素を追加する際に問題があります。 この問題は、重複するキーを許可しないPython辞書に関連しているようです。この制限にどのように対処できますか?重複キーを使用してjson辞書に新しい要素を挿入

import json 
import datetime 

current_dict = json.loads(open('cad_data.json').read()) 

print(current_dict) 
# {'entries': [{'cad_value': '518', 'timestamp': '2017-10-24 16:15:34.813480'}, {'cad_value': '518', 'timestamp': '2017-10-24 17:15:34.813480'}]} 

new_data = {'timestamp': datetime.datetime.now(), 'cad_value': '518'} 

current_dict.update(new_data) 
print(current_dict) 
# {'entries': [{'cad_value': '518', 'timestamp': '2017-10-24 16:15:34.813480'}, {'cad_value': '518', 'timestamp': '2017-10-24 17:15:34.813480'}], 'timestamp': datetime.datetime(2017, 10, 25, 13, 44, 20, 548904), 'cad_value': '518'} 

マイコードが無効な辞書/ jsonにつながります。

+1

JSONでは重複キーも許可されません。 – user2357112

+1

'current_dict'には、リストを参照する' entries'キーがあります。あなたは*おそらくそのリストに*追加するつもりですか? –

+0

@MartijnPieters:そうだよ!どうすればいい? – user1155413

答えて

1

最も外側の辞書を更新しました。あなたentriesリストにに別の辞書を追加するには、にしたい、任意の辞書を更新する必要はありません:。

current_dict [「エントリ」]アペンド(NEW_DATA)

ここcurrent_dict['entries']に解決される式でありますリストオブジェクトは辞書を持ち、上記のリストオブジェクトにlist.append()を呼び出してリストにnew_dataの参照を追加し、効果的に別の辞書を追加します。

+0

あなたの助けを借りて、私が間違っていたことをはっきりと説明することに非常に感謝します。私は本当にあなたの助けに感謝します! – user1155413

関連する問題