这可能是一个重复的问题,但是,我无法找到解决我自己问题的方法。我有这个名为d.json的文件。它包含,ID和名称,它是测试文件。
{
"id": [
"1",
"2"
],
"name": "p"
}
^那是当前的JSON。我需要能够编辑该ID列表,但是,我尝试过这个解决方案:
>>> with open('d.json', 'r+') as f:
data = json.load(f)
r = data['id'].append("3")
f.write(r)
f.close()
然而,我明白了:
Traceback (most recent call last):
File "<pyshell#49>", line 4, in <module>
f.write(r)
TypeError: write() argument must be str, not None
我的整个想法是让我能够打开JSON文件,在列表中添加一个快速值,关闭它,完成。
答案 0 :(得分:3)
您需要先将json转换为字符串,然后再将其写回文件。试试这个:
with open('d.json', 'r+') as f:
data = json.load(f)
data['id'].append("3")
f.seek(0)
json.dump(data, f)
f.truncate()