我在向JSON字典添加新元素时遇到问题。 这个问题似乎与不允许重复键的python词典有关。我该如何处理这个限制?
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。
答案 0 :(得分:1)
您更新了最外层的字典。您不想更新任何字典,您希望将另一个字典添加到entries
列表中:
current_dict ['条目&#39]。追加(NEW_DATA)
此处current_dict['entries']
是一个表达式,它解析为带有字典的列表对象,上面调用该列表对象上的list.append()
以将new_data
引用添加到列表中,有效地添加了另一个字典。