2017-02-17 2 views
0

이 질문은 중복 될 수 있지만 내 자신의 문제에 대한 해결책을 찾지 못했습니다. d.json이라고하는이 파일이 있습니다. 그것은 ID와 이름을 보유하고 테스트 파일입니다.JSON 값으로 목록에 추가하는 방법은 무엇입니까?

{ 
    "id": [ 
     "1", 
     "2" 
    ], 
    "name": "p" 
} 

^현재의 JSON입니다. 나는이 얻을, 그러나

>>> with open('d.json', 'r+') as f: 
     data = json.load(f) 
     r = data['id'].append("3") 
     f.write(r) 
     f.close() 

: 나는 그러나, 나는 시도, 그 ID의 목록을 편집 할 수있는이 솔루션을 필요로

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() 
관련 문제