如何将excel数据放入字典?

时间:2017-09-06 09:10:02

标签: python django excel

我想把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)代替{{} 1}},但是在那个时候dict没有扩展错误发生。我的理想输出是

data_dict = rows3

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

2 个答案:

答案 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()