从excel多列创建python嵌套字典

时间:2018-07-24 17:49:27

标签: python excel python-3.x dictionary xlrd

我有一个Excel工作表,如图here

它有3个类C1,C2 and C3,其中C1是主要类,这里只有Cars一个类,但可以是多个。 C2C1的类别,C3C1的子类别。有什么方法可以将这些数据转换为一些易于读取的格式,例如nested dictionaries,以便使用for循环迭代这些类?我尝试使用以下方法进行转换:

from xlrd import open_workbook
auto_cars=[]
def parse_xlsx():
    workbook = open_workbook('C:/Users/Downloads/TAXONOMY.xlsx')
    sheets = workbook.sheet_names()
    active_sheet = workbook.sheet_by_name(sheets[1])
    num_rows = active_sheet.nrows
    num_cols = active_sheet.ncols
    header = [active_sheet.cell_value(0, cell).lower() for cell in range(num_cols)]
    for row_idx in range(1, num_rows):
        row_cell = [active_sheet.cell_value(row_idx, col_idx) for col_idx in range(num_cols)]
        yield dict(zip(header, row_cell))

for row in parse_xlsx():   
    auto_cars.append(row)

哪个给出令人困惑的输出:

[{'c1': 'Cars ', 'c2': 'Class', 'c3': 'muv'},
 {'c1': '', 'c2': '', 'c3': 'hatchback'},
 {'c1': '', 'c2': '', 'c3': 'suv'},
 {'c1': '', 'c2': '', 'c3': 'sedan'},
 {'c1': '', 'c2': '', 'c3': 'coupe'},
 {'c1': '', 'c2': '', 'c3': 'convertible'},
 {'c1': '', 'c2': 'Fuel Type', 'c3': 'electric'},
 {'c1': '', 'c2': '', 'c3': 'diesel'},
 {'c1': '', 'c2': '', 'c3': 'cng'},
 {'c1': '', 'c2': '', 'c3': 'petrol'},
 {'c1': '', 'c2': '', 'c3': 'lpg'},
 {'c1': '', 'c2': '', 'c3': 'hybrid'},
 {'c1': '', 'c2': 'Brand', 'c3': 'ashok leyland'},
 {'c1': '', 'c2': '', 'c3': 'audi'},
 {'c1': '', 'c2': '', 'c3': 'bmw'},
 {'c1': '', 'c2': '', 'c3': 'bentley'}
 ..................................
 .................................

0 个答案:

没有答案