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 で再度使用すると、最初のものは上書きされます。最初のエントリに 2 番目 (3 番目...) のエントリを追加するにはどうすればよいですか?
編集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)