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

2024-09-28 01:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的剧本写得很好。唯一的问题是写入我的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

我想知道如何做我所期望的。你知道吗


Tags: 文件namejsonagedata字典withopen
2条回答

您可以使用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'}]

您可以使用以下方法在json中添加缩进:

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

这将使json更具可读性

输出为:

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

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

相关问题 更多 >

    热门问题