使用重复键将新元素插入到json字典中

时间:2017-10-25 17:04:13

标签: python json dictionary

我在向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。

1 个答案:

答案 0 :(得分:1)

您更新了最外层的字典。您不想更新任何字典,您希望另一个字典添加到entries列表中:

current_dict ['条目&#39]。追加(NEW_DATA)

此处current_dict['entries']是一个表达式,它解析为带有字典的列表对象,上面调用该列表对象上的list.append()以将new_data引用添加到列表中,有效地添加了另一个字典。