网站首页 > 博客文章 正文
遇见 Tablib
我们在 Python 实际开发过程中,经常涉及将数据导出为 Excel、Csv、Yaml、Json 等各种格式的文件的需求,一些粗鲁的实现方式是通过安装各种第三方模块以支持不同格式文件的导出操作。
接下来要我们要介绍的这个模块,再也不需要担心因导出不同格式数据时而调用各种第三方模块了,当然使用 Pandas 也是一个不错的选择,只是过于重量级了。
Python Tablib 是麻省理工学院授权的与格式无关的表格数据集库。支持导入、导出和操作表格数据集。优雅的将数据导出为各种不同的格式,包括Excel,Json,Html,Yaml,Csv,Tsv等格式。
Tablib 安装
我们在 Windows10 Python3 环境下,使用 pip 进行安装 ,安装命令如下:
pip install tablib
接下来,让我们一步步了解如何使用 Tablib ,简洁而又优雅的实现将数据导出为各种格式。
创建数据集
我们使用 tablib.Dataset 方法,采用如下方式创建数据集:
我们还可以另一种方式创建数据集,如下:
我们还可以通过导入现有文件数据的方式创建数据集,如下,我们为 dump.json 文件。
我们使用 tablib.Dataset.load 方法导入 dump.json 文件数据,实现如下:
创建一个 tablib.Dataset 通过 load 方法,导入现已存在的文件。强大之处是 tablib 能够自动检测传入的文件类型,并使用适当的格式化方法进行导入,实现从各种不同的文件类型中导入——强无敌。
比如,我们再导入 dataset.xlsx 文件,代码实现如下:
添加行
我们可以使用 tablib.Dataset.append 方法,实现向数据集尾部添加行数据,需要注意的是每行的元素数量应与数据集的列数相同,代码实现如下:
我们也可以使用 tablib.Dataset.insert 方法,实现向数据集指定位置添加行数据,同样需要注意每行的元素数量应与数据集的列数相同,代码实现如下:
添加列
我们可以使用 tablib.Dataset.append_col 方法,实现向数据集尾部添加列数据,需要注意的是每列的元素数量应与数据集的行数相同,代码实现如下:
我们也可以使用 tablib.Dataset.insert_col 方法,实现向数据集指定位置添加列数据,需要注意的是每列的元素数量应于数据集的行数相同,代码实现如下:
选择行和列
我们可以像Python列表一样通过切片和索引获取行数据。像Python字典通过列名和索引获取列数据,代码实现如下:
删除行
我们可以使用以下方式,实现行删除:
- tablib.Dataset.pop :删除最后一行
- tablib.Dataset.lpop :删除第一行
- del dataset[n: m] :删除指定范围的行
删除列
我们可以使用 del dataset['column_name'] ,实现删除指定列,代码实现如下:
数据格式转换
我们可以将数据集转换为如下任一格式,强无敌。
- Excel ( 支持Books)
- Json ( 支持Books)
- Yaml (支持 Books)
- Pandas DataFrames
- Csv
- Html
- Jira
- Tsv
- Ods
- Dbf
- Dict
我们演示一下,其中几种数据格式,如下:
执行上述代码,输出结果为:
数据导出
终于介绍到,让我激动不已的数据导出了,简单而优雅,通用而高效。
导出 dataset_o.xlsx 文件如下:
使用DataBook 导出多页数据
导出 dataset_ot.xlsx 文件如下:
猜你喜欢
- 2024-09-17 Kudra 介绍:可以从任何文档工具中提取代码数据
- 2024-09-17 Linux系统管理员必备的监控工具(linux监控工具nmon)
- 2024-09-17 奋战一年,LangChain首个稳定版本发布,LangGraph把智能体构建为图
- 2024-09-17 推荐几个开发必备的JSON工具(推荐几个开发必备的json工具有哪些)
- 2024-09-17 浅谈在Linux中使用mongoexport工具导出数据
- 2024-09-17 常用的图像标注工具汇总(图像标注主要包括哪些项目)
- 2024-09-17 Python新工具:用三行代码提取PDF表格数据
- 2024-09-17 有备无患「GitHub 热点速览」(有备无患better safe than sorry)
- 2024-09-17 13个MacOS很赞的开源小工具-IT开发利器
- 2024-09-17 万能解析网站懂的都懂点进来看看就知道了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)