Python 读取excel并转换为字典
方法一:利用利用xlrd读取excel文件
其实整个过程比较简单,利用xlrd读取excel文件,再把读取到的数据转换为dict即可。
1.安装 xlrd
pip install xlrd
2.读取文件,并进行格式转换
导入的excel表格的格式是这样的:
解析后的格式为
[{'编号': 1, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 2, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 3, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 4, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 5, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 6, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1}]
这里只写出主要的代码段
# excel转dict
def excel_to_dict(self, *args, **kwargs):"""excel转dict1.传来的文件可以是文件路径,也可以是二进制文件2.传来的可以是二进制文件,这里以django接收前端传来文件为例:接收用 request.FILES.get("fileName", None) 传入 my_file 即可kwargs接收的参数有:_sheet索引,0代表第一个表,1代表第二个表,默认0_max表格最大的行数,默认2000行_min表格最小的行数,默认1行"""# excel 文件excel_file = self.__mark# sheet 索引_sheet = kwargs.get("sheet", 0)# max 最大条数_max = kwargs.get("max", 2000)# min 最小条数_min = kwargs.get("min", 0)# 判断是否为文件路径if os.path.exists(excel_file):workbook = xlrd.open_workbook(excel_file)else:# 上传的文件不保存,直接在内存中读取文件workbook = xlrd.open_workbook(filename=excel_file.name, file_contents=excel_file.read())# 根据sheet索引或者名称获取sheet内容data_sheet = workbook.sheets()[_sheet]# 获取sheet名称,行数,列数据sheet_name = data_sheet.namesheet_nrows = data_sheet.nrowssheet_ncols = data_sheet.ncols# 文件记录不得大于2000条if sheet_nrows > _max:return {"code": "0001", "msg": "文件记录大于{}条,请联系管理员上传".format(_max), "data": None}# 判断是否为空数据if sheet_nrows <= _min:return {"code": "0001", "msg": "空数据表格,停止导入", "data": None}# excel转dictget_data = []for i in range(1, sheet_nrows):# 定义一个空字典sheet_data = {}for j in range(sheet_ncols):# 获取单元格数据类型c_type = data_sheet.cell(i, j).ctype# 获取单元格数据c_cell = data_sheet.cell_value(i, j)if c_type == 2 and c_cell % 1 == 0: # 如果是整形c_cell = int(c_cell)elif c_type == 3:# 转成datetime对象c_cell = datetime(*xlrd.xldate_as_tuple(c_cell, 0)).strftime('%Y-%m-%d %H:%M:%S')elif c_type == 4:c_cell = True if c_cell == 1 else Falsesheet_data[data_sheet.row_values(0)[j]] = c_cell# 循环每一个有效的单元格,将字段与值对应存储到字典中# 字典的key就是excel表中每列第一行的字段# sheet_data[self.keys[j]] = self.table.row_values(i)[j]# 再将字典追加到列表中get_data.append(sheet_data)# 返回从excel中获取到的数据:以列表存字典的形式返回return get_data
方法二:利用xToolkit库
1.安装方法:
pip install xToolkit -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
xToolkit库是我自己封装的python内置库的一个扩展库.把python的datetime,string,list,dist,xthread等数据结构进行了功能的扩展。里面好用的功能比较多,可以前往 https://blog.csdn.net/qq_22409661/article/details/108531485 查看具体用法。
2.使用方法比较简单,一行代码即可搞定
xfile.read("./result/t_excel.xls").excel_to_dict()
导入的excel表格的格式是这样的:
# excel转dict# 1.传来的文件可以是文件路径,也可以是二进制文件
# 2.传来的可以是二进制文件,这里以django接收前端传来文件为例:
# 接收用 request.FILES.get("fileName", None) 传入 my_file 即可# kwargs接收的参数有:
# _sheet索引,0代表第一个表,1代表第二个表,默认0
# _max表格最大的行数,默认2000行
# _min表格最小的行数,默认1行xfile.read("./result/t_excel.xls").excel_to_dict()
>> [{'编号': 1, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 2, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 3, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 4, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 5, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1},{'编号': 6, '时间': '1988-07-21 00:00:00', '年龄': 1, '分数': 63.2, '总分': 1}]
Python 读取excel并转换为字典相关推荐
- python读excel两列为字典_用python读取Excel并保存字典?一两行代码完成骚操作
分享一个前几天晚上粉丝问的问题,觉得很实用的一个问题,用python读取Excel并保存字典,如何做? 下面是该同学问题截图和代码 代码截图是下面这样的 不知道大家第一眼看了这个代码,什么感受?我第一 ...
- python 读取excel太慢_Python 读取excel并转换为字典
方法一:利用利用xlrd读取excel文件 其实整个过程比较简单,利用xlrd读取excel文件,再把读取到的数据转换为dict即可. 1.安装 xlrd pip install xlrd 2.读取文 ...
- python 读取文本并转换为字典_遇见的python问题--如何将文件里的内容转换成字典类型...
文件内容如下: liuyang,123456 liyun,123456 zhangsna,12345lkj #方法一:从文件中读取数据,一行读取一个列表,读取出一个嵌套的列表,再转换成字典 with ...
- Python读取Excel中的数据
1.用xlrd包读取excel数据 import xlrddef read_excel():# 打开文件,xlrd.open_workbook(),函数中参数为文件路径,分为相对路径和绝对路径work ...
- python读取excel日期内容读出来是数字-Python读取Excel,日期列读出来是数字的处理...
Python读取Excel,里面如果是日期,直接读出来是float类型,无法直接使用. 通过判断读取表格的数据类型ctype,进一步处理. 返回的单元格内容的类型有5种: ctype: 0 empty ...
- python读取excelsheet-一文看懂用Python读取Excel数据
原标题:一文看懂用Python读取Excel数据 导读:现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上). Python处理Excel文件主要 ...
- python读取excel表格-python读取excel表格中的数据
使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...
- vb.net读取excel并写入dgv_如何用Python读取Excel中的图片?然后写入图片?
大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...
- 如何用Python读取Excel中图片?又如何用Python往Excel中写入图片?
大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进行分析. 那么你知道如何使用Python读 ...
最新文章
- 人工智能一定要用python吗_学人工智能一定要学Python吗?
- 如何隐晦地表达“滚”?
- php获取周几,php怎么获得星期几
- 嵌入式和fpga哪个好前景_Java 和 go 哪个就业前景好一点?面向金钱编程,这个回答太现实...
- 简要分析JM8.6代码中foreman_part_qcif.yuv文件的YUV数据如何悄无声息地进入程序
- 谷歌这个大杀器要让英伟达慌了,实战评测:TPU相比GPU简直又快又省
- Microsoft Virtual Lab Use Guide
- xjad使用中的几个问题
- css学习25:设置文本样式
- 红旗linux桌面版_瑞星ESM杀毒软件For Linux获红旗兼容性认证
- qpython3.7.4版本下载_QPython3app下载
- ln命令 Linux软连接(Symbolic Link)和硬链接(Hard Link)
- 中兴V889DRoot后可删和不可删
- python生成验证码的程序_用python生成验证码图片
- 自学Java day8 项目-零钱通 从jvav到架构师
- FileNotFoundException报错, src\main\....\....(拒绝访问) , 原因:1. 方法没有判断文件夹和文件, 2.没有指明文件的具体路径和名字...
- 物联网技术概论:第1章
- Lua 报错 PANIC: unprotected error in call to Lua API (no calling environment) 解决办法
- 算法:递归(汉诺塔)
- Spark数据挖掘实例1:基于 Audioscrobbler 数据集音乐推荐