gpt4 book ai didi

python - 如何将数据附加到json文件?

转载 作者:IT老高 更新时间:2023-10-28 12:48:54 27 4
gpt4 key购买 nike

我正在尝试创建一个将条目添加到 json 文件的函数。最终,我想要一个看起来像

的文件
[{"name" = "name1", "url" = "url1"}, {"name" = "name2", "url" = "url2"}]

等等。这就是我所拥有的:

def add(args):
with open(DATA_FILENAME, mode='r', encoding='utf-8') as feedsjson:
feeds = json.load(feedsjson)
with open(DATA_FILENAME, mode='w', encoding='utf-8') as feedsjson:
entry = {}
entry['name'] = args.name
entry['url'] = args.url
json.dump(entry, feedsjson)

这确实会创建一个条目,例如 {"name"="some name", "url"="some url"}。但是,如果我再次使用这个 add 函数,使用不同的名称和 url,第一个会被覆盖。我需要做什么才能将第二个(第三个...)条目附加到第一个条目上?

编辑:这个问题的第一个答案和评论指出了一个明显的事实,即我没有在写入 block 中使用 feeds。不过,我不知道该怎么做。例如,以下显然不会这样做:

with open(DATA_FILENAME, mode='a+', encoding='utf-8') as feedsjson:
feeds = json.load(feedsjson)
entry = {}
entry['name'] = args.name
entry['url'] = args.url
json.dump(entry, feeds)

最佳答案

json 可能不是磁盘格式的最佳选择;它在附加数据方面遇到的麻烦就是一个很好的例子,说明了为什么会这样。具体来说,json 对象的语法意味着必须读取和解析整个对象才能理解它的任何部分。

幸运的是,还有很多其他选择。一个特别简单的就是 CSV; python的标准库很好地支持它。最大的缺点是它只适用于文本;如果需要,它需要程序员采取额外的行动将值转换为数字或其他格式。

另一个没有此限制的选项是使用 sqlite 数据库,该数据库在 python 中也具有内置支持。这可能与您已经拥有的代码有更大的不同,但它更自然地支持您显然正在尝试构建的“稍微修改”模型。

关于python - 如何将数据附加到json文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994442/

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