簡體   English   中英

Python JSON 轉儲/附加到 .txt,每個變量都在新行上

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM