gpt4 book ai didi

python - 将字典导出到 json 文件

转载 作者:行者123 更新时间:2023-11-28 22:51:13 37 4
gpt4 key购买 nike

我有一个字典列表 j,我想将一些字典导出为一个名为 myFile.json 的 json 文件:

for item in j:
if item['start'] = "True":
#If myFile.json exists then append item to myFile.json
#Otherwise create myFile.json that starts with "[" and append item to it
#Append "]" to the myFile.json

我可以使用 try 来做到这一点,但我想知道是否有更 pythonic 的方法来实现它。

我的代码甚至不值一提。

try:
with io.open(myFile.json, 'a', encoding='utf-8') as f:
f.write(unicode(json.dumps(item, ensure_ascii=False)))
f.write(u",")
except IOError:
with io.open(myFile.json, 'w', encoding='utf-8') as f:
f.write(u"[")
with io.open(myFile.json, 'a', encoding='utf-8') as f:
f.write(unicode(json.dumps(item, ensure_ascii=False)))
f.write(u",")

# ..etc

编辑输出文件应该是一个 json 数组:

[ {"key1":"value1","key2":"value2"},{"key1":"value3","key2":"value4"}]

最佳答案

你的方法有一个严重的缺陷:如果你先写 [,你还需要在你写的每个 JSON 值之后添加 , 逗号,你必须附加关闭 ],然后每次附加到文件时都必须删除最后一个 ],或者在读取时手动添加 ] 解码前结束括号。

您最好不要尝试构建一个大的 JSON 列表,而是使用换行符作为分隔符。这样你就可以自由追加,并通过 reading your file line-by-line您可以轻松地再次加载数据。

这具有极大简化代码的附加优势:

with io.open(myFile.json, 'a', encoding='utf-8') as f:
f.write(unicode(json.dumps(item, ensure_ascii=False)))
f.write(u'\n')

这消除了测试文件首先存在的需要。阅读就这么简单:

with open(myFile.json) as f:
for line in f:
data = json.loads(line)

关于python - 将字典导出到 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759719/

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