2013-06-11 10 views
36

私のコードは辞書を作成し、それを変数に格納します。 各辞書をJSONファイルに書きたいと思いますが、各辞書を新しい行にしたいと思います。Python JSONは、各変数を改行して.txtにダンプ/追加します

私の辞書:私のコードの

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を' に各辞書を追加しますが、それはそうインラインありません。私は各辞書のエントリを改行したい。 アドバイスをいただければ幸いです。

答えて

63

あなたの質問は少し不明です。あなたは、ループ内hostDictが発生している場合:

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

あなたが意味する場合は、hostDict内の各変数は、新しい行になりたい:indentキーワード引数が設定されている場合

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

それが自動的に追加されます改行

+0

これは、ありがとうございました! –

+2

私が必要としたのは、各ディクテーションが新しい行にある最初の解決策でした。再度、感謝します。 –

+0

ドキュメントはこちらです:https://docs.python.org/2/library/json.html#basic-usage – badgley

関連する問題