web-dev-qa-db-ja.com

Python JSONダンプ/各変数を新しい行に追加して.txtに追加

私のコードは辞書を作成し、それが変数に保存されます。各辞書をJSONファイルに書き込みたいのですが、各辞書を新しい行に追加したいです。

私の辞書:

hostDict = {"key1": "val1", "key2": "val2", "key3": {"sub_key1": "sub_val2", "sub_key2": "sub_val2", "sub_key3": "sub_val3"}, "key4": "val4"}

私のコードの一部:

g = open('data.txt', 'a')
with g as outfile:
  json.dump(hostDict, outfile)

これにより、各辞書が「data.txt」に追加されますが、インラインで追加されます。辞書の各エントリを新しい行に追加します。アドバイスをいただければ幸いです。

50
Victor S

あなたの質問は少し不明瞭です。ループでhostDictを生成している場合:

with open('data.txt', 'a') as outfile:
    for hostDict in ....:
        json.dump(hostDict, outfile)
        outfile.write('\n')

hostDict内の各変数を新しい行に入れたい場合:

with open('data.txt', 'a') as outfile:
    json.dump(hostDict, outfile, indent=2)

indentキーワード引数が設定されると、自動的に改行が追加されます。

91
agf