Добавление данных в файл json в Python
Я пытаюсь создать функцию, которая будет добавлять записи в файл 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)