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运行之后的. 如果该路径下没有该 ...
随机推荐
- [转]JFreeChart简介及下载、配置
JFreeChart简介 JFreeChart是完全基于Java语言的开源项目,因此可以使用在Java开发环境中,包括Java应用程序,或者是Java Web应用都没有任何问题.结合iText项目,可 ...
- Halcon学习笔记——机器视觉应用工程开发思路及相机标定
机器视觉应用工程开发思路 机器视觉应用工程主要可划分为两大部分,硬件部分和软件部分. 1.硬件部分,硬件的选型至关重要,决定了后续工作是否可以正常开展,其中关键硬件部分包括:光源,相机以及镜头. 2. ...
- 关于IQueryable和IEnumerable
园里对这两个已经有很多文章作了深入的介绍,我总结些,当成笔记用. 一.具体判断用哪个上,如果是运行在本地内存中的,用IEnumerable,枚举该对象时,会立即反应查询结果. 如果是远程数据源,比如数 ...
- UDP client,UDP server, TCP server, TCP client
UDP server import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocke ...
- JS图片赖加载例子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- <Android 应用 之路> 简易手电筒
前言 快一个月没有写自己的博客了,由于最近换了工作,换了居住地,所以有一些杂事需要处理,从今天开始恢复正常,不赘述了.进入今天的主题 -– 简易的手电筒. 这个Demo中使用的是比较新的API,M版本 ...
- 【阿里云产品公测】PTS压力测试服务器性能
作者:阿里云用户xsnjxjj 在PTS服务之前,经常使用webbench来对服务器进行压力测试,在看到阿里云PTS服务的介绍以后,深深的被PTS强大的功能所吸引 非常感谢阿里云团队给予的测试 ...
- nagios centos7 rpm打包
wget https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-4.3.1/nagios-4.3.1.tar ...
- window medio player 完美代码
var arr = [ '<object width="240" height="240" align="basel ...
- apache-实战(二)
Apache 虚拟主机 --用apache或nginx就可以做 一台服务器跑多台web服务 VPS virtual private server 虚拟专用服务器 --使用虚拟化技术来做 云服务器 虚拟 ...