Tablib:是一款简单好用、多种格式的数据管理的Python库

1 说明:

=====

1.1 python的数据管理的库有很多,我还是觉得tablib库简单好用。

1.2 Tablib 是一个与表格格式数据有关的Python库,允许导入、导出、管理表格格式数据。

1.3 适合多种格式:

Excel (Sets + Books)
JSON (Sets + Books)
YAML (Sets + Books)
HTML (Sets)
TSV (Sets)
CSV (Sets)

2 官网:

=====

https://github.com/jazzband/tablib
https://tablib.readthedocs.io/en/stable/
https://pypi.org/project/tablib/

3 安装:

=====

pip install tablib
#本机安装
#sudo pip3.8 install tablib

4 xls格式:

=======

4.1 代码:

#---数据导出xls:方法一---
import tablib
#表头,支持中文
headers = ('序号', '用户', '年龄')
#数据
data = [
    ('1', 'Rooney', 20),
    ('2', 'John', 30),
]
#数据集合
data = tablib.Dataset(*data, headers=headers)
#打开或者新建一个1.xls,wb方式
table = open("/home/xgj/Desktop/tablib/1.xls", "wb")
#写入
table.write(data.xls)
#关闭
table.close()

4.2 操作示意和效果图:

4.3 上述代码还可以这样修改,推荐这种,效果一样:

#---数据导出xls:方法二:推荐这种---
import tablib
#表头,支持中文
headers = ('序号', '用户', '年龄')
#数据
data = [
    ('1', 'Rooney', 20),
    ('2', 'John', 30),
]
#数据集合
data = tablib.Dataset(*data, headers=headers)

with open('/home/xgj/Desktop/tablib/2.xls','wb') as f:
    #f.write(data.xls)
    f.write(data.export('xls'))  #与上面相同

4.4 增加行和列;删除行和列

#---数据导出xls:增加行和列---
import tablib
#表头,支持中文
headers = ('序号', '用户', '年龄')
#数据
data = [
    ('1', 'Rooney', 20),
    ('2', 'John', 30),
]
#数据集合
data = tablib.Dataset(*data, headers=headers)
#增加行
data.append(['3', 'Keven',18])
data.append(['4', 'tom',22])
#增加列
data.append_col([2200, 2000,1300], header='收入')
#删除行
#del data[1:3]  #删除2和3行的数据,列表截取data的索引0,1,2,3,4,1对应第2行数据序号2的数据
#删除列
#del data['Age']
with open('/home/xgj/Desktop/tablib/2.xls','wb') as f:
    f.write(data.xls)

4.5 读取上述删除行和列的数据,并打印:

import tablib
data = tablib.Dataset()
#读取数据
with open('/home/xgj/Desktop/tablib/2.xls', 'rb') as f:
    data.load(f, 'xls')
print(data)
序号|用户    |年龄  
--|------|----
1 |Rooney|20.0
4 |tom   |22.0

5 csv格式:

========

5.1 代码:

#---数据导出csv
import tablib
#表头,支持中文
headers = ('序号', '用户', '年龄')
#数据
data = [
    ('1', 'Rooney', 20),
    ('2', 'John', 30),
]
#数据集合
#dialect='unix'
#data=tablib.Dataset(*data, format='csv', headers=False)  #表头隐藏
data=tablib.Dataset(*data, format='csv', headers=headers)  #表头显示,注意这里不是True
#csv的特色
data.export('csv', delimiter=' ', quotechar='|')
#指定路径和文件名
with open('/home/xgj/Desktop/tablib/3.csv', 'w', newline='') as f:
    f.write(data.export('csv'))

5.2 效果图:


6 json格式:

========

6.1 代码:

import tablib
#表头
headers = ('序号', '用户', '年龄')
#数据
data = [
    ('1', 'Rooney', 20),
    ('2', 'John', 30),
]
dst = tablib.Dataset(*data, headers=headers)

print(dst)  #终端输出表格格式
#encoding='utf8'
with open('/home/xgj/Desktop/tablib/4.json', mode='w',encoding='utf8') as f:
    #f.write(dst.json)
    f.write(dst.export('json'))  #与上面相同
    #ensure_ascii=False
    print(dst.json)  #终端输出json格式
    #已经被转换成Unicode码,如:"\u5e8f\u53f7"='序号'
#终端输出效果
序号|用户    |年龄
--|------|--
1 |Rooney|20
2 |John  |30
[{"\u5e8f\u53f7": "1", "\u7528\u6237": "Rooney", "\u5e74\u9f84": 20}, {"\u5e8f\u53f7": "2", "\u7528\u6237": "John", "\u5e74\u9f84": 30}]

6.2 解决这个问题:#已经被转换成Unicode码,如:"\u5e8f\u53f7"='序号'

#解决办法用python的 json模块,顺带复习
import json
with open("/home/xgj/Desktop/tablib/4.json", "r", encoding='utf-8') as f:
    aa = json.loads(f.read())
    f.seek(0)
    bb = json.load(f)    # 与 json.loads(f.read())
print(aa)
print(bb)
#终端输出效果图
[{'序号': '1', '用户': 'Rooney', '年龄': 20}, {'序号': '2', '用户': 'John', '年龄': 30}]
[{'序号': '1', '用户': 'Rooney', '年龄': 20}, {'序号': '2', '用户': 'John', '年龄': 30}]

7 读取数据:

7.1 图

7.2 读取xls

7.2.1 代码:

import tablib

data = tablib.Dataset()
#读取数据
with open('/home/xgj/Desktop/tablib/1.xls', 'rb') as f:
    data.load(f, 'xls')
print(data)

7.2.2 图:

csv省略

7.3 读取json

7.3.1 代码:比6.2代码简单吧,跳过json模块的load和loads的知识。

import tablib
data = tablib.Dataset()
with open('/home/xgj/Desktop/tablib/4.json', 'rb') as f:
    data.load(f, 'json')
print(data)

7.3.2 效果图:

8 df格式和yaml格式:了解一下。

超级简单。

自己整理并分享出来,喜欢的就点赞、关注、转发、评论和收藏。

相关文章

「强强联合」在Power BI 中使用Python(1)——导入数据

编辑搜图请点击输入图片描述近几年,Python是越来越火了,就连地产大佬潘石屹都在年近不惑之时开始学习Python编程语言,我们做数据分析和运营的怎能不熟练运用呢?编辑搜图图片模糊,建议替换或删除×请...

Pycharm导入python项目

进入PyCharm后,点击File→Open,然后在弹窗中选择需要导入项目的文件夹;打开了python项目后,需要配置该项目对应的python才可以正常运行;配置步骤:File→settings在设置...

零基础到发布:手把手教你创建并分发 Python 自定义库

作为程序员,我们经常依赖各种外部库来解决不同的问题。这些库由技术娴熟的开发者创建,为我们提供了节省时间和精力的解决方案。但你是否曾想过:“我也能创建属于自己的自定义库吗?”答案是肯定的!本文将为你详细...

彻底搞懂Python 中的 import 与 from import

对不少 Python 初学者来说,Python 导入其他模块的方式让他们很难理解。什么时候用import xxx?什么时候用from xxx import yyy?什么时候用from xxx.yyy...

python首行代码import *,from * import * 解析

python代码,一般第一行代码都是import *或from * import *,作用是导入功能模块,然后利用模块内的函数编写代码,减少大量的代码编写时间,是python的一大特色。但是,在实际写...

Python的RSA操作(私钥与公钥)

RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA...