Как преобразовать файл Excel с несколькими заголовками и подзаголовками во вложенный Json, как показаноPython

Программы на Python
Anonymous
 Как преобразовать файл Excel с несколькими заголовками и подзаголовками во вложенный Json, как показано

Сообщение Anonymous »


Изображение

Я пытался преобразовать данные файла Excel, как показано на рисунке, из формата Excel в Json, но не смог правильно преобразовать в нужную мне структуру. Мне нужна структура, как показано ниже

Код: Выделить всё

{
"ID": "000 001 234",
"Label": "XYZ",
"Category 1": { "Sub1": "129.75","Sub2" : "0.00","Sub3":"0.00" }
"Order Amount": "234.00",
"Penalty": "111.00",
"Fees": "3,456.00",
"Category2":  { "Sub21": "0.00","Sub22" : "0.00","Sub23": "0.00" }
"Invoice": "11.00"
},

{
"ID": "000 001 235",
"Label": "XYZ",
"Category 1": { "Sub1": "1.75","Sub2" : "0.00","Sub3":"0.00" }
"Order Amount": "111.00",
"Penalty": "0.00",
"Fees": "2,343.00",
"Category2":  { "Sub21": "0.00","Sub22" : "0.00","Sub23": "0.00" }
"Invoice": "2.00"
},
код, который я пробовал, приведен ниже

Код: Выделить всё

from openpyxl import load_workbook
from json import dumps

# Load Excel workbook
wb = load_workbook("sample.xlsx")

# Choose a specific sheet
sheet = wb["Sheet1"]

# Find the number of rows and columns in the sheet
rows = sheet.max_row
columns = sheet.max_column
# List to store all rows as dictionaries
lst = []

# Iterate over rows and columns to extract data
for i in range(1, rows):
row = {}
for j in range(1, columns):
column_name = sheet.cell(row=1, column=j)
row_data = sheet.cell(row=i+1, column=j)

row.update(
{
column_name.value: row_data.value
}
)
lst.append(row)

# Convert extracted data into JSON format
json_data = dumps(lst)

# Print the JSON data
print(json_data)
Я получаю следующий результат:

Код: Выделить всё

[{
"ID": null,
"Label": null,
"Category 1": "Sub3",
"Order Amount": null,
"Penalty": null,
"Fees": null,
"Category2": "Sub23"
},
{"ID": 1234, "Label": "XYZ", "Category 1": 0, "Order Amount": 234, "Penalty": 111, "Fees": 3456, "Category2": 0},
{"ID": 1235, "Label": "XYZ", "Category 1": 0, "Order Amount": 111, "Penalty": 0, "Fees": 2343, "Category2": 0}]
Я не могу получить вложенный json в нужном мне формате. Буду признателен за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ed-json-as

Вернуться в «Python»