Dołączanie danych do pliku json w Pythonie
Próbuję utworzyć funkcję, która dodawałaby wpisy do pliku json. W końcu chcę plik, który wygląda jak
[{"name" = "name1", "url" = "url1"}, {"name" = "name2", "url" = "url2"}]
itd. Oto co mam:
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)
To tworzy wpis taki jak{"name"="some name", "url"="some url"}
. Ale jeśli tego użyjęadd
ponownie, z inną nazwą i adresem URL, pierwszy zostanie nadpisany. Co muszę zrobić, aby dodać drugi (trzeci ...) wpis do pierwszego?
EDYTOWAĆ: Pierwsze odpowiedzi i komentarze do tego pytania wskazują na oczywisty fakt, którego nie używamfeeds
w bloku zapisu. Ale nie wiem, jak to zrobić. Na przykład:
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)