У меня проблема с именем многоиндексного столбца. Я использую XLRD для преобразования данных Excel в JSON, используя json.dumps
, но вместо этого он дает мне только одну строку имени столбца. Я читал о многоуровневой JSON, но я не знаю, как это сделать с помощью XLRD.
Вот мой пример имени столбца таблицы
Пример кода:
for i in path:
with xlrd.open_workbook(i) as wb:
print([i])
kwd = 'sage'
print(wb.sheet_names())
for j in range(wb.nsheets):
worksheet = wb.sheet_by_index(j)
data = []
n = 0
nn = 0
keyword = 'sage'
keyword2 = 'adm'
try:
skip = skip_row(worksheet, n, keyword)
keys = [v.value for v in worksheet.row(skip)]
except:
try:
skip = skip_row2(worksheet, nn, keyword2)
keys = [v.value for v in worksheet.row(skip)]
except:
continue
print(keys)
for row_number in range(check_skip(skip), worksheet.nrows):
if row_number == 0:
continue
row_data = {}
for col_number, cell in enumerate(worksheet.row(row_number)):
row_data[keys[col_number]] = cell.value
data.append(row_data)
print(json.dumps({'Data': data}))
кстати, каждый лист имеет свой номерпропустить перед именем столбца, поэтому мой код получил функцию пропуска строки. После того, как я пропустил строку и нашел точное местоположение моего столбца имя. Затем я начинаю читать значения. Но это да, где проблема возникает с моей точки зрения, потому что я получил две строки имени столбца. И все еще путают, как сделать многоуровневый JSON с XLRD или хотя бы объединить имя столбца с XLRD (что, я думаю, не может).
Желаемый результат многоуровневый JSON:
{ "Data":[{ "ID" : "997", "Tax" : [{"Date" : "9/7/2019", "Total" : 2300, "Grand Total" : 340000"}], "Tax ID" : "ST-000", .... }]}
pss: // Я пытался использовать панд, но это доставляет мне много хлопот, так как я работаю с большими данными.