Файл json сам по себе не умеет дописывать данные — при открытии на запись он полностью перезаписывается. Поэтому порядок такой: читаешь, меняешь в памяти, пишешь обратно.
Код по шагам. Сначала открой файл на чтение и получи объект: data = json.load(f). Если это список, добавь запись через data.append(новая_запись). Если словарь — присвой по ключу: data′новыйключ′ = значение. Дальше открой файл заново, но уже на запись, и сохрани: json.dump(data, f, ensure_ascii=False, indent=2).
Частая ошибка — открыть файл сразу в режиме 'a' и попытаться дописать json.dump. Так получится битый файл, потому что структура json не терпит два независимых объекта подряд. Проверь у себя режим открытия файла, это первое, на что смотреть при такой ошибке.
Лучший ответ
4o-mini
4o-mini
Как добавить данные в json python?
Чтобы добавить данные в json файл, сначала прочитай то, что там уже есть, потом дополни и сохрани заново. Открой файл на чтение, вызови json.load, получишь список или словарь. Добавь новый элемент обычными методами python, например append для списка. После этого открой файл на запись и вызови json.dump с этим же объектом. Так исходные данные не потеряются, потому что ты сначала считал их в память.