Python表格格式转换模块:tablib
文章目录
- 安装
- 创建表格
- 导出数据
- 读写
安装
Tablib是Python的表格转换插件,支持不同格式表格之间的转换,其推荐的安装方式为
pip install "tablib[all]"
其中,all等同于html, pandas, ods, xls, xlsx, yaml,表示在安装tablib的基础上,同时对这些不同的文件格式提供支持。如果不需要,也可以只安装tablib
pip install tablib
创建表格
尽管tablib的主打功能是格式转换,但为了有一个可供操作的数据,这里先讲解一下tablib的创建表格的功能。
import tablibdata = tablib.Dataset()data.headers = ['姓名', '性别']data.append(["小王", "男"]) # 添加行
data.append(["小李", "女"])data.append_col([22, 20], header='年龄')data['姓名'] # ['小王', '小李']
data[0] # ('小王', '男', 22)
print(data.dict)
# [{'姓名': '小王', '性别': '男', '年龄': 22}, {'姓名': '小李', '性别': '女', '年龄': 20}]
【Dataset】是tablib的主要数据结构,可以理解为表格。【headers】是表格的标题属性。
【append】用于添加行;【append_col】用于添加列。
最终得到了如下表格
姓名 | 性别 | 年龄 |
---|---|---|
小王 | 男 | 22 |
小李 | 女 | 20 |
导出数据
【dict】是Dataset中的一个属性,以字典的形式存储着Dataset中的数据。而datalib的主打功能,就是将这些数据转化为各种不同的格式,故而Dataset中也封装了各种不同的属性,包括:cli, csv, dbf, df, html, jira, json, latex, ods, rst, tsv, xls, xlsx, yaml等,示例如下
print(data.csv)
# 姓名,性别,年龄
# 小王,男,22
# 小李,女,20print(data.yaml)
# {姓名: 小王, 年龄: 22, 性别: 男}
# {姓名: 小李, 年龄: 20, 性别: 女}
此外,通过export函数,可以通过字符串来声明其转换格式
data.export("json")
# '[{"姓名": "小王", "性别": "男", "年龄": 22}, {"姓名": "小李", "性别": "女", "年龄": 20}]'
读写
Dataset数据在导出之后,可以直接存储为对应文件
with open("test.csv", 'w', newline="") as t:t.write(data.csv)
如上即可将表格以csv的格式写入test.csv文件。在open函数中,newline默认为回车,如不更改,会在行间添加一个空行。
读取为其逆过程
with open("test.csv", 'r') as t:d1 = tablib.Dataset().load(t, format='csv')print(d1)
# 姓名|性别|年龄
# --|--|--
# 小王|男 |22
# 小李|女 |20
【load】即为Dataset中用于加载数据的方法。其两个