gpt4 book ai didi

python - 使用 python 将数据附加到 JSON 文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:48 24 4
gpt4 key购买 nike

我编写了以下 python 代码来填充 JSON 文件。

import json

data = {}
data['people'] = []

for i in range(0,3):
data['people'].append({
'name': 'C%d'%(i),
'div':i,
'from': 'City%d'%(i)
})

with open('data.txt', 'w') as outfile:
json.dump(data, outfile)

但是,我的 JSON 文件看起来像这样:

{"people": [{"div":0,"from":,"City0":"name":"C0"},{"div":0,"from":,"City0":"name":"C0"}]}

我的输入顺序与输出顺序不同。这是什么原因以及如何纠正?

最佳答案

你使用什么版本的Python?您创建了一个字典,但在 python 3.6 之前,不保留插入顺序。 In python 3.6插入顺序被保留,但它被认为是实现细节,不应依赖。 In python 3.7 dict 对象的插入顺序保留性质已被声明为 Python 语言规范的正式部分。如果您使用低于 3.7 的 python 版本,请使用集合中的 OrderedDict。

import json
from collections import OrderedDict

data = {}
data['people'] = []
for i in range(0,3):
data['people'].append(OrderedDict((
('name', 'C%d' %(i)),
('div', i),
('from', 'City%d'%(i))
)))

with open('data.json', 'w') as outfile:
json.dump(data, outfile)

顺便问一下,为什么文件的扩展名是txt而不是json?这并不重要,与你的问题无关,但我很好奇。

关于python - 使用 python 将数据附加到 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53438505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com