繁体   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