与列标题进行比较,并在python中检索其数据

时间:2018-09-07 06:16:54

标签: python xlrd

我要做的是获取一个Excel文件并提取带有虎钳类别的列。我是这个 我从Excel中提取数据列表为list1,仅提取标头作为标头,然后选择一个基本列表并与标头交叉。结果我得到一个类别列表

list1就像:

[{'Title': 'Asam', 'Description': 'all about', 'Latitude': 47545.0, 'Longitude': 65564.0}]

标题就像:

['Title', 'Description', 'Latitude', 'Longitude']

基本列表如下:

{'Title','Description'}

我希望输出像:

[{'Title': 'Asam', 'Description': 'all about'}]

我得到的输出就像:

['Title', 'Description']

所以,我尝试了这个:

def main():
    sheet = open_workbook(filename)
    sheet_names = sheet.sheet_names()
    for s in sheet_names:
        xl_sheet = None
        xl_sheet = sheet.sheet_by_name(s)

        header = [xl_sheet.cell(0, col_index).value for col_index in range(xl_sheet.ncols)]
        print(header)

        list_1 = []
        for row_index in range(1, xl_sheet.nrows):
            d = {header[col_index]: xl_sheet.cell(row_index, col_index).value
                 for col_index in range(xl_sheet.ncols)}
            list_1.append(d)

        print(list_1)

        basic = {'Title','Description', 'Location', 'Info'}
        lst3 = [value for value in header if value in basic]
        print(lst3)

1 个答案:

答案 0 :(得分:1)

您应该这样创建list_3:

idx = 0
list_3 = [{value: list_1[idx][value] for value in header if value in basic}]