如何添加到JSON值的列表?

时间:2017-02-17 01:11:36

标签: python json

这可能是一个重复的问题,但是,我无法找到解决我自己问题的方法。我有这个名为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文件,在列表中添加一个快速值,关闭它,完成。

1 个答案:

答案 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()