Как добавить в json файл в Python?

У меня есть json файл, содержимое которого {"67790": {"1": {"kwh": 319.4}}}. Теперь я создаю словарь a_dict который мне нужно добавить в json файл. Я попробовал следующее, но не смог сделать это правильно. Где я ошибаюсь?

with open(DATA_FILENAME, 'a') as f:
   json_obj = json.dump(a_dict, json.load(f)
   f.write(json_obj)
   f.close()

Ответ 1

Предполагая, что у вас есть файл test.json со следующим содержимым:

{"67790": {"1": {"kwh": 319.4}}}

Затем приведенный ниже код load json файл, обновит данные внутри с помощью dict.update() и dump файл test.json:

import json

a_dict = {'new_key': 'new_value'}

with open('test.json') as f:
    data = json.load(f)

data.update(a_dict)

with open('test.json', 'w') as f:
    json.dump(data, f)

Затем, в test.json, вы получите:

{"new_key": "new_value", "67790": {"1": {"kwh": 319.4}}}

Надеюсь, это то, что вы хотели.

Ответ 2

Вам нужно обновить вывод json.load с помощью a_dict, а затем выгрузить результат. И вы не можете добавить к файлу, но вам нужно его перезаписать.

Ответ 3

json_obj=json.dumps(a_dict, ensure_ascii=False)