delvin-fil
@delvin-fil
Crazy Linux-admin

Как на python добавить в json файл строку/ки?

Приветствую всех.
Суть такова.
Есть простейшая таблица в файле:
{"values": [
      {"date": {"year": 2015,"month": 5,"day": 23},"pay": 4578,"cons": 2000},
      {"date":{"year":2018,"month":8,"day":20},"pay":810079,"cons":174349},
      {"date":{"year":2018,"month":8,"day":19},"pay":1405087,"cons":228148},
      {"date":{"year":2018,"month":8,"day":18},"pay":310057,"cons":129969},
      {"date":{"year":2018,"month":8,"day":17},"pay":666410,"cons":5717049},
      {"date":{"year":2018,"month":8,"day":16},"pay":435064,"cons":1587303},
      {"date":{"year":2018,"month":8,"day":15},"pay":217724,"cons":51281},
      {"date":{"year":2018,"month":8,"day":14},"pay":240684,"cons":43044}
]
}

Вот эта конструкция добавляет единственный раз в конце файла строку:
a_dict = ({"date": {"year": 2011, "month": 2, "day": 2}, "pay": 810, "cons": 174})

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

dat = data.update(a_dict)

data.update(a_dict)
with open('tbl.json', 'w') as f:
    json.dump(data, f)

И "ломает" файл.
Вопрос: Как добавлять строки в таблицу сохраняя структуру?

UPD: Мне не нужен приведенный мной код. Это с stack overflow. Мне нужна подсказка, как дописывать существующий файл.
  • Вопрос задан
  • 9541 просмотр
Решения вопроса 1
JaxxDexx
@JaxxDexx
a_dict = ({"date": {"year": 2011, "month": 2, "day": 2}, "pay": 810, "cons": 174}, )

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

data["values"] += list(a_dict)

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


Мне нужна подсказка, как дописывать существующий файл.

Подсказка в том ,что учите мат часть - типы dict, list, и тд. json.load загружает файл и в вашем случае возвращает отображение. Внутри этого отображения с ключем "values" у вас находится список в который вам нужно добавить свой элемент.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект