tablib模块
####tablib基础知识#### tablib是什么我就不说了,网上一大推,我大概就知道能将数据转为某种格式 1、安装tablib模块
pip install tablib 2、安装完毕,就在你要使用的py文件中导入就好
import tablib 3、下面讲讲它的一些基础用法 Dataset对象 创建dataset1,方式一:
dataset1 = tablib.Dataset()
dataset1.headers = ['id','name','age','sex']
dataset1.append(['','朱宇','','male'])
dataset1.append(['','张昊','','male'])
dataset1.append(['','伍洋','','male']) 创建dataset2,方式二:
header2 = ['id','name','password']
data = [
['','杨鹏',''],
['','代松柏',''],
]
dataset2 = tablib.Dataset(headers=header2,*data) ## 这是创建dataset的两种方式,两者都是创建一个头部,再添加一行一行数据
## 我把它理解成mysql数据库,大致都一样,这样比较好记忆点。
## 方法一,先是实例化出一个空对象,再给headers属性赋值,添加数据
## 方式二,在实例化对象的时候,就把数据传了进去 这里你可以打印看看这个创建出来的对象,它在终端是怎样现实的 dataset对象创建出来的,下面说说增删查改 # 增加一行数据(拿dataset2举例子)
dataset2.append(['','朱宇',''])
dataset2.append(['','何鹏','']) 注意:调用append方法就可以了,传一个列表,数据必须要和headers想对应,不能多,不能少 # 增加一列数据,增加年龄这列数据(实在原有的基础上额)
dataset2.append_col((20,21,22,23),'age') 注意:我在添加列之前,dataset2已经有了数据,那么我在添加age这列,必须要为之前每行数据,
也要添加对应的age的值,所以我在第一个参数传了一个元组(列表也可以),之前数据有多少
行,你也必须对应传多少个,第二个参数就是你添加列的名字 思考??
假如我在添加列之前,已经有了几百条,上千条数据了,那你第一个参数是不是也要写这么多啊 解答:我在上面那表的基础再添加一个列(score),记录成绩
import random
def get_score(row):
return random.randint(60,100) dataset2.append_col(get_score,headers='score') 这样我就无需考虑之前有多少数据了,它会将函数的返回值当作每行添加列score的值
虽说这样可以解决问题,但是添加数据的精确性不高,所以在设计headers之前,要考虑清楚 # 查看某一行的数据
dataset2[index]
这里的index必须是合法,也就是说必须存在于dataset2中 # 获取某一列的数据
dataset2['score']
# 这里我获取到了score这一列的所有数据,你拿到该数据也可以进行自己的处理
dataset2.get_col(index)
# 这是通过索引去获取,和上面获取某一行是一样的,不同的事,它是用方法
# 还是注意下,上面的score,和index也是必须要有的 # 删除某行,某列
del 某行(某列)
关于删除里面还有其他方法,pop,lpop这些 我们在对Dateset对象进行了一些列的操作,最终还是要保存在硬盘中(也就是文件)
这也是tablib的强大之处,你可以将Dateset对象转换为你想要的格式,保存下来 还是用dataset2举例子 dataset2.json # 转成json格式
dataset2.xls # 转成xls格式
dataset2.csv # 转成csv格式 还有其他格式,可以去查询看看,上面这些操作只是转成了某种格式,最后还是要保存下来 with open('zhuyu.csv','wb') as f:
f.write(dataset2.scv) 这只是一些基础用法,想要更加深入了解的话,可以去官网查找看看 还有一个差点忘记,Databook,它是ablib下面的一个类
和上面差不多,首先实例化,传参数 book = tablib.Databook(dataset1,dataset2)
with open ('c.csv','wb') as f:
f.write(book.scv) 打开book.scv你会发现下面会有两个sheet,也就是两个文件吧 更新到这里
tablib模块的更多相关文章
- python - 将数据转换成 excl 表格, json 等文件 (dajngo - 打开网页后自动下载)
本篇只讲述怎么用. 具体 tablib 更多详细用法可参考博客 : https://blog.csdn.net/liangyuannao/article/details/41476277 # 不得不 ...
- python 第三方模块 转 https://github.com/masterpy/zwpy_lst
Chardet,字符编码探测器,可以自动检测文本.网页.xml的编码. colorama,主要用来给文本添加各种颜色,并且非常简单易用. Prettytable,主要用于在终端或浏览器端构建格式化的输 ...
- tablib源代码学习
tablib简介 ----------- Tablib is a format-agnostic tabular dataset library, written in Python. Tablib ...
- python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter
最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...
- python模块大全
python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...
- python中常⽤的excel模块库
python中常用的excel模块库&安装方法 openpyxl openpyxl是⼀个Python库,用于读取/写⼊Excel 2010 xlsx / xlsm / xltx / xltm⽂ ...
- python的库有多少个?python有多少个模块?
这里列举了大概500个左右的库: ! Chardet字符编码探测器,可以自动检测文本.网页.xml的编码. colorama主要用来给文本添加各种颜色,并且非常简单易用. Prettytable主 ...
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
随机推荐
- 使用waitfor 语句
aitfor语句用于延迟后面语句的执行,可以指定延迟时间长度是具体的时间.参考下面的语句: waitfor delay ’00:01:15’ print N’到时间了’ --也可以不加N 字符串 ...
- shell命令修改文件内容
有个 test.txt 文件内容为 hello tom,现在修改成 hello jerry,并保存到test2.txt sed 's/tom/jerry/g' test.txt >test2. ...
- Hashtable(哈希表)
简体字繁体字转化: class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ; i < ...
- MyBatis 中 sqlmapconfig核心标签typeAliases配置说明
标签说明 在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType.resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声 ...
- CSS中关于linebox的baseline位置移动的理解
前言 最近看到一篇文章,弗里得木的翻译笔记,里面有个问题没有解决,就是linebox的baseline为什么会移动呢? 在讨论这个问题之前读者需要对 默认值baseline 以及 其他属性值(天镶的博 ...
- Stage2--Python的数据类型
说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...
- Sde各类命令详解(sdemon 、sdelayer、sdeservice、sdetable、sdeconfig、SdeExport_SdeImport)
Sdemon命令详解: http://wenku.baidu.com/view/3b53e8ec0975f46527d3e1c2.html 1.重建空间索引 D:\Program Fi ...
- 文件上传fileupload文件接收
form表单提交数据到servlet后,使用fileupload进行接收. fileupload 是由 apache 的 commons 组件提供的上传组件.它最主要的工作就是帮我们解析 reques ...
- 多线程(一)~基础介绍,简单demo实现
前言: 现在CPU都是多核的,可以同时处理多个进程,比如我笔记本的CPU是i3-370,它就是双核四线程的.那么这个核和线程都是什么呢? 核是针对硬件而言的,即核心,代表的 ...
- ICONIX Process
1.像rup,iconix是用例驱动的但是比rup更轻量级. iconix 仅仅使用四种diagram(用例图.健壮性图.时序图.类图)就可以把用例文本转成代码. 2.值得注意的健壮性分析图并不是u ...