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运行之后的. 如果该路径下没有该 ...
随机推荐
- solidity语言
IDE:Atom 插件:autocomplete-solidity 代码自动补齐 linter-solium,linter-solidity代码检查错误 language-ethereum支持 ...
- 错误 6 未能找到类型或命名空间名称“BLL”(是否缺少 using 指令或程序集引用?)
出现这个错误,要确保先引用BLL.dll, 如果引用之后还没有解决这个问题的话,确认一下程序集FrameWork版本与项目FrameWork版本一致.右击程序集属性可以更改.
- 04.Continue,和三元表达式的学习
立即结束本次循环,判断循环条件,如果成立,则进入下一次循环,否则退出循环. 举例:运动员跑步喝水的例子 比如:我编写代码的时候,上个厕所,回来继续写代码 练习1: namespace _09.练习02 ...
- Android studio 配置使用maven
安装nexus(略) 启动nexus 打开web(admin;admin123) http://127.0.0.1:8081/nexus 创建的demo 1 2 3 对应的本地目录 配置maven / ...
- Mysql 服务无法启动解决办法
1.我使用的是MySQL-5.7.10-winx64 版本,在安装后启动服务时出现 “服务无法启动”错误 2.解决办法为删除安装目录中的data文件,然后打开cmd调到自己的安装目录下输入mysqld ...
- log4j2单独的配置与使用&log4j2+slf4j的结合的配置与使用
转载自:https://github.com/iamyong 一.log4j2单独的配置与使用 所用jar文件 log4j-api-2.8.2.jar log4j-core-2.8.2.jar 配置文 ...
- CompletionService的poll方法
1.poll():马上返回完成的任务,若没有,则返回null 2.poll(long timeout, TimeUnit unit): 等待timeout时间,如果大于最短任务完成时间,则获取任务结果 ...
- elasticsearch5.5.2环境搭建
运行elasticsearch5.5.2需要jdk1.8版本以上 1.elasticsearch可以去官网或github下载,window系统推荐zip压缩版 2.解压后 进入bin目录运行elast ...
- jQuery Event.stopImmediatePropagation() 函数详解
stopImmediatePropagation()函数用于阻止剩余的事件处理函数的执行,并防止当前事件在DOM树上冒泡. 根据DOM事件流机制,在元素上触发的大多数事件都会冒泡传递到该元素的所有祖辈 ...
- 数据质量控制软件Q-CHECKER(转)
随着企业信息化建设的不断深入进行,我们的企业将逐步地发展成为数字化企业.其中作为最基本构成的CATIA数模已经是产品开发制造的唯一依据,CATIA数模的质量就是加工的质量,就是制造的质量,就是生产出的 ...