我怎样才能把excel数据放到字典里?

我想把excel数据放到字典里。 Excel是 高强 views.py是

#coding:utf-8 from django.shortcuts import render import xlrd book3 = xlrd.open_workbook('./data/excel.xlsx') sheet3 = book3.sheet_by_index(0) large_item = None data_dict = {} for row_index in range(1,sheet3.nrows): rows3 = sheet3.row_values(row_index) large_item = rows3[1] or large_item data_dict = rows3 

现在当我打印出print(data_dict) ,显示['','4','10','Karen','']。之前,我写了data_dict.extend(rows3)代替data_dict = rows3 ,但是在那个时候字典没有扩展错误发生。我的理想输出是

 data_dict = { 1: { user_id: 1, name_id: 1, name: Blear, age: 40, man: false, employee: leader, }, 2: { user_id: 2, name_id: 5,・      ・      ・},・      ・      ・} 

我应该如何写作来实现我的目标?

你的问题是:

 data_dict = rows3 

这不会将rows3添加到data_dict,这个值是值。 所以data_dict等于最后一行。

要添加元素到一个字典,你需要这样做:

 data_dict[KEY] = VALUE 

您的密钥将是行索引。

现在,你需要另一个像VALUE字典

 { user_id: 1, name_id: 1, name: Blear, age: 40, man: false, employee: leader, } 

所以对于每一行你需要构造这个字典,使用标题和单元格值来做到这一点。

我不testing这个代码,只是给你一个想法,如何做到这一点。

 #coding:utf-8 from django.shortcuts import render import xlrd book3 = xlrd.open_workbook('./data/excel.xlsx') sheet3 = book3.sheet_by_index(0) headers = sheet3.row_values(0) large_item = None data_dict = {} for row_index in range(1,sheet3.nrows): rows3 = sheet3.row_values(row_index) large_item = rows3[1] or large_item # Create dict with headers and row values row_data = {} for idx_col,value in enumerate(rows3): header_value = headers[idx_col] # Avoid to add empty column. A column in your example if header_value: row_data[headers[idx_col]] = value # Add row_data to your data_dict with data_dict[row_index] = row_data 

你可以使用Python的库pandas来获得一个简单的解决scheme:

 from pandas import * xls = ExcelFile('your_excel_file.xls') df = xls.parse(xls.sheet_names[0]) df.to_dict()