如何在Python中附加json文件?

如何在Python中附加json文件?,python,json,Python,Json,我有一个json文件,其内容是{“67790”:{“1”:{“kwh”:319.4}}。现在我创建了一个dictionarya_dict,我需要将它附加到json文件中。我尝试了以下方法,但未能正确执行。我错在哪里 with open(DATA_FILENAME, 'a') as f: json_obj = json.dump(a_dict, json.load(f) f.write(json_obj) f.close() 假设您有一个包含以下内容的test.json文件:

我有一个json文件,其内容是
{“67790”:{“1”:{“kwh”:319.4}}
。现在我创建了一个dictionary
a_dict
,我需要将它附加到json文件中。我尝试了以下方法,但未能正确执行。我错在哪里

with open(DATA_FILENAME, 'a') as f:
   json_obj = json.dump(a_dict, json.load(f)
   f.write(json_obj)
   f.close()

假设您有一个包含以下内容的
test.json
文件:

{"67790": {"1": {"kwh": 319.4}}}
然后,下面的代码将
加载
json文件,使用
dict.update()
更新内部数据,并
转储到
test.json
文件中:

import json

a_dict = {'new_key': 'new_value'}

with open('test.json') as f:
    data = json.load(f)

data.update(a_dict)

with open('test.json', 'w') as f:
    json.dump(data, f)
然后,在
test.json
中,您将有:

{"new_key": "new_value", "67790": {"1": {"kwh": 319.4}}}

希望这是您想要的。

您需要使用命令更新json.load的输出,然后转储结果。
您不能附加到文件,但需要覆盖它。

如果我们想这样做怎么办?{“67790”:{“1”:{“kwh”:319.4,“new_key”:“new_value”,}}}}问题是,每次您想要更改或添加到json文件时,它都会使用“w”选项重写文件。如何将添加元素附加到json中已经存在的数组中?如何附加使用
数据[“key”]。附加({“new_key”:“new_value”})
如何
数据。更新(a_dict)
未超出范围或边界@Alexe当您使用带有open(…)的
作为f:
时,您不需要执行
f.close()
这不就是覆盖对象吗?它会用这个
a_dict
对象覆盖json文件,除非您用所有要存储的值更新
a_dict
json_obj=json.dumps(a_dict, ensure_ascii=False)