как добавить словарь в файл json с помощью python

#python #json #openpyxl

Вопрос:

Я пытаюсь проанализировать файл excel и использую цикл while, но проблема в том, что он записывает в файл json только последние данные.Может ли кто-нибудь помочь мне решить эту проблему и спасибо .

 corpsCBL = {}
i=2
cell = worksheet_corps.cell(row=i, column=4)
while (cell.value) != "SORTIE":
    cell2 = worksheet_corps.cell(row=i, column=2)
    if cell2.value is not None:
        corps= {
            "codeArticle": worksheet_corps.cell(row=i, column=2).value worksheet_corps.cell(row=i, column=3).value,
            "produit": worksheet_corps.cell(row=i, column=4).value,
            "trusquinCB": worksheet_corps.cell(row=i, column=5).value,
            "trusquin":worksheet_corps.cell(row=i, column=6).value,
            "longueurCB":worksheet_corps.cell(row=i, column=12).value
        }
        corpsCBL.update(corps)
        json_object = json.dumps(corpsCBL, indent = 4)
    i=i 1;
    cell = worksheet_corps.cell(row=i, column=4)
# Writing to sample.json
with open("data.json", "w") as outfile:
    outfile.write(json_object)
 

Ответ №1:

Из словаря python.обновление():

метод update() добавляет элементы в словарь, если ключа в словаре нет. Если ключ находится в словаре, он обновляет ключ новым значением.

Поэтому каждый раз, когда вы звоните corpsCBL.update(corps) , предыдущая запись будет перезаписана, так как уже присутствуют одни и те же значения ключа («codeArticle», «produit» и так далее).

Предполагая, что вы хотите собрать все записи, вы можете изменить corpsCBL на список и просто добавить диктант для каждой записи Excel.

 corpsCBL = []
 

и

 corpsBDL.append(corps)