[英]Python JSON dump / append to .txt with each variable on new line
我的代碼創建了一個字典,然后將其存儲在一個變量中。 我想將每個字典寫入一個 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”,但它是內聯的。 我希望每個字典條目都在新行上。 任何意見,將不勝感激。
你的問題有點不清楚。 如果您在循環中生成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
關鍵字參數后,它會自動添加換行符。
為避免混淆,同時解釋問題和答案。 我假設發布此問題的用戶想要以 JSON 文件格式保存字典類型對象,但是當用戶使用json.dump
,此方法將其所有內容轉儲在一行中。 相反,他想在新行上記錄每個字典條目。 要實現此用途:
with g as outfile:
json.dump(hostDict, outfile,indent=2)
使用indent = 2
幫助我將每個字典條目轉儲到新行。 謝謝@agf。 重寫此答案以避免混淆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.