2013-06-11 18 views
36

Kodum, bir değişkende saklanan bir sözlük oluşturur. Her bir sözlüğü bir JSON dosyasına yazmak istiyorum, ancak her bir sözlüğün yeni bir satırda olmasını istiyorum.Python JSON yeni satırdaki her değişkeni ile .txt dosyasına ekleme/ekleme

Benim sözlüğü: Benim kod

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

Bölüm:

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

Bu 'Data.txt' her sözlüğü ekler ama o kadar satır içi yapar. Her sözlük girişinin yeni satırda olmasını istiyorum. Herhangi bir tavsiye takdir edilecektir.

cevap

63

Sorunuz biraz belirsiz. Eğer bir döngü içinde hostDict üreten ediyorsanız: Eğer hostDict içindeki her değişken yeni bir satıra olmak istiyorum demek durumunda

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

:

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

indent kelime argümanı ayarlandığında otomatik ekler yeni satırların.

+0

Peki, teşekkürler! –

+2

İhtiyacım olan her çözümün yeni hat üzerinde olduğu ilk çözümdü. Tekrar teşekkürler. –

+0

docs burada: https://docs.python.org/2/library/json.html#basic-usage – badgley

İlgili konular