我想把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)
代替{{} 1}},但是在那个时候dict没有扩展错误发生。我的理想输出是
data_dict = rows3
我应该如何写作以实现我的目标?
答案 0 :(得分:0)
你的问题是:
data_dict = rows3
这并没有将rows3添加到data_dict,这个集合是值。所以data_dict等于最后一行。
要向dict添加元素,您需要执行以下操作:
data_dict[KEY] = VALUE
您的密钥将是行索引。
现在,你想要另一个像VALUE
这样的词典{
user_id: 1,
name_id: 1,
name: Blear,
age: 40,
man: false,
employee: leader,
}
因此,对于构建此dict所需的每一行,请使用标题和单元格值来执行此操作。
我不会测试此代码,只是为了让您了解如何执行此操作。
#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
答案 1 :(得分:0)
您可以使用python的库pandas
来获得简单的解决方案:
from pandas import *
xls = ExcelFile('your_excel_file.xls')
df = xls.parse(xls.sheet_names[0])
df.to_dict()