如何在Json中每行编写字典列表?

时间:2019-04-04 08:55:55

标签: python json python-3.x dictionary

我的脚本运行正常。唯一的问题是写入我的Json文件。 它将所有字典转储到第一行(第一行)

这是我尝试的:

data = [{'name' : 'Jan', 'age' : '30'}, {'name' : 'Peter', 'age' : '45'}, {'name' : 'Kees', 'age' : '50'}]`
`with open("data_file.json", "w") as write_file:
    for d in data:
        json.dump(data, write_file)

我希望输出:

1 [
2 {"name": "Jan", "age": "30"}, 
3 {"name": "Peter", "age": "45"}, 
4 {"name": "Kees", "age": "50"}
5 ]

但是我实际上得到了:

1 [{"name": "Jan", "age": "30"}, {"name": "Peter", "age": "45"}, {"name": "Kees", "age": "50"}]
2
3
4
5

我想了解如何做我期望的事情。

2 个答案:

答案 0 :(得分:0)

您可以使用以下命令在json中添加缩进:

json.dump(data, write_file, indent=1)

这将使您的json更具可读性

输出将是:

[
 {
  "name": "Jan",
  "age": "30"
 },
 {
  "name": "Peter",
  "age": "45"
 },
 {
  "name": "Kees",
  "age": "50"
 }
]

这是我能想到的最接近的方式

答案 1 :(得分:-1)

您可以使用pprint库漂亮地打印列表。

from pprint import pprint
d = [{'name' : 'Jan', 'age' : '30'}, {'name' : 'Peter', 'age' : '45'}, {'name' : 'Kees', 'age' : '50'}]
pprint(d)
#Output:
[{'age': '30', 'name': 'Jan'},
 {'age': '45', 'name': 'Peter'},
 {'age': '50', 'name': 'Kees'}]