我怎样才能把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()