我有两个json
个文件。其中一个是字典,是另一个的子集。
json_file_1.json
包含{'foo': 1, 'bar': 2, 'baz': 3}
json_file_2.json
包含{'foo': 100, 'bar': 200}
。
我想创建一个具有以下内容的最终json
文件:{'foo': 100, 'bar': 200, 'baz': 3}
这是我到目前为止所尝试的内容:
with open('json_file_1.json') as f1:
original_info = json.load(f1)
f1.close()
with open('json_file_2.json') as f2:
updated_info = json.load(f2)
f2.close()
print original_info # prints the correct dictionary
print updated_info # prints the correct dictionary
final_info = original_info.update(updated_info)
print final_info # prints None
with open('json_file_final.json', 'w+') as f_final:
json.dump(final_info, f_final)
但是,当我打开最终的json
文件时,它只包含“Null”。当我尝试调试它时,我打印出original_info
和updated_info
,它们都很好。我可以调用original_info.update(updated_info)
,这将生成一个已正确更新的字典。但是,当它全部放在一起时,它只是因某种原因而无法正常工作?
有什么想法吗?
非常感谢!
答案 0 :(得分:2)
dict.update
就地更新字典并返回None
。
您需要转储original_info
供参考,
In [11]: d1 = {'foo': 1, 'bar': 2, 'baz': 3}
In [12]: d2 = {'foo': 100, 'bar': 200}
In [13]: d3 = d1.update(d2)
In [14]: d3
In [15]: print(d3)
None
In [16]: d1
Out[16]: {'bar': 200, 'baz': 3, 'foo': 100}