2017-02-17 52 views
0

这可能是一个重复的问题,但是,我无法找到解决我自己的问题。我有这个名为d.json的文件。它拥有ID和名称,它是测试文件。如何添加到JSON值列表中?

{ 
    "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文件,给列表添加一个快速值,关闭它,完成。

回答

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