2017-02-17 8 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() 
関連する問題