Python JSON dump / append to .txt with each variable on new line 使用Python将JSON转储/追加到.txt文件中,每个变量占据新的一行。

9 浏览
0 Comments

Python JSON dump / append to .txt with each variable on new line 使用Python将JSON转储/追加到.txt文件中,每个变量占据新的一行。

我的代码创建了一个字典,然后将其存储在一个变量中。\n我想将每个字典写入一个 JSON 文件,但我希望每个字典都在新的一行上。\n我的字典:\n

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

\n代码的一部分:\n

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

\n这个代码将每个字典追加到\'data.txt\',但是它是内联的。我希望每个字典条目都在新的一行上。\n任何建议都将不胜感激。

0
0 Comments

问题的原因是用户想要将字典类型的对象保存为JSON文件格式,但是当用户使用json.dump方法时,所有内容都被转储到一行中。相反,用户希望将每个字典条目记录在新行上。

为了解决这个问题,可以使用以下代码:

with open("file.txt", "a") as outfile:
    json.dump(hostDict, outfile)
    outfile.write("\n")

通过将字典对象转储到文件后,在每个字典之后添加一个换行符"\n",可以实现将每个字典条目记录在新行上。

这个解决方法可以确保每个字典条目都被保存在独立的行上,以便在后续的读取和处理中更容易解析和使用。

0
0 Comments

问题出现的原因是希望将Python中的字典对象以JSON格式写入到一个txt文件中,每个变量占据一行。问题的解决方法是使用Python的json库中的json.dump()方法来实现,具体代码如下:

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

如果希望每个变量在txt文件中占据一行,并且希望格式化输出,可以使用json.dump()方法的indent参数,具体代码如下:

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

当设置indent参数时,会自动添加换行符。在问题中提到,有些情况下这个方法可能不起作用,这可能是因为在对空对象或不存在的对象使用json.dump()或json.dumps()方法时导致的。另外,如果希望在每个变量之间添加逗号分隔符,可以在写入换行符之前添加代码outfile.write(',\n')

0