我正在尝试创建一个函数,该函数将向 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,第一个函数将被覆盖。我需要做什么来获得第二个(第三个...)条目附加到第一个?
编辑 : 对这个问题的第一个回答和评论指出了一个明显的事实,那就是我没有在写块中使用 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)