Python2.7-pickle, cpickle
pickle, cpickle模块,用于序列化和反序列化 python 对象数据,可以被序列化的有:布尔值,数值,字符串,包含以上三类的容器,定义在模块顶层的函数、内置函数和类,实例对象的 __dict__ 或是定义了 __getstate__()。后面两类在 pickle 的时候不会序列化他们的值和代码,而是他们名字的引用,所以在反序列化的时候,定义他们的模块需要被导入。所以这个模块可以用于网络通信,也可以用于保存数据,但用于网络通信时不要反序列化一个不明来源的数据,不安全。cpickle 和 pickle 的区别就在于前者是用 c 实现的,更快,同时pickler 和 unickler 是以函数形式存在,不以类形式存在。
模块方法:
pickle.dump(obj, file[, protocol]):把 obj 序列化到打开的文件 file 中,protocol 为 0,代表用 ASCII 协议,以 ASCII 文本保存,protocol 为 1,代表用老的二进制格式保存,protocol 为 2 或负数,代表用二进制格式保存,效率更高
pickle.load(file):反序列化文件 file 中的数据,恢复原来的格式
pickle.dumps(obj[, protocol]):以字符串形式序列化 obj,不写入文件
pickle.loads(string):反序列化 string
模块的类:
1、Pickler(file[, protocol]):用于序列化对象至文件 file 中
dump(obj):把 obj 对象序列化
clear_memo():清楚缓存,缓存可以使那些被共享或是递归的对象被正确序列化
2、Unpickler(file):用于反序列化文件 file 里的数据
load():反序列化,重新构建数据结构
noload():反序列化,但不创建任何对象
注:对于低端用户,dump 和 load 保存读取数据就够用了。高端用户需要知道怎么写类的 __getstate__() 和 __setstate__(state) 方法, persistent_load() 方法等
Python2.7-pickle, cpickle的更多相关文章
- Python 序列化 pickle/cPickle模块
Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...
- python 标准库 -- pickle & cPickle
pickle & cPickle pickle 和 cPickle 除了导入名称不一样之外, 使用方法, 均一样. pickle 导入 import pickle cPickle 导入 imp ...
- python序列化pickle/cPickle
一.pickle/Cpickle简介 Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游 ...
- pickle & cPickle ValueError: unsupported pickle protocol: 3
pickle and cPickle pickle和cPickle是python对象的转储文件,保存的是python对象 他们分别是python2和python3的对应部分,建议引入的时候采用以下方法 ...
- Python 序列化pickle/cPickle模块整理
Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人.你会怎么做?这取决于你想要怎么保存,怎么重用,发送给谁.很多游戏允许你在退出的时候保存进度,然后你再 ...
- python pickle/cPickle模块
序列化(picking): 把变量从内存中变成可存储或传输的过程称为序列化,序列化之后,就可以把序列化的对象写入磁盘,或者传输给其他设备; 反序列化(unpickling):相应的,把变量的内容从序列 ...
- python2,socket多进程的错误pickle.PicklingError: Can't pickle
python2,socket多进程的错误pickle.PicklingError: Can't pickle 源码: #coding:utf-8 import socket import pickle ...
- python pickle模块的使用/将python数据对象序列化保存到文件中
# Python 使用pickle/cPickle模块进行数据的序列化 """Python序列化的概念很简单.内存里面有一个数据结构, 你希望将它保存下来,重用,或者发送 ...
- Python笔记(1)变量与表达式
列表list list是用的最多的类型 可以count计数 可嵌套,多钟类型并存 支持 + * a = [1,2,3] a_ref = a a_copy = a[:] 引用,a变化a_ref也变化 指 ...
随机推荐
- POJ2195&&HDU1533(KB11-D 最小费用最大流)
Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23515 Accepted: 11853 Desc ...
- JavaScript弹出窗口方法
本文实例汇总了常用的JavaScript弹出窗口方法,供大家对比参考,希望能对大家有所帮助.详细方法如下: 1.无提示刷新网页: 大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才 ...
- 【读书笔记】iOS-定位服务与地图应用开发
一,定位服务. iOS设备能提供3种不同的定位途径: 1,WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:iPhone,Ipod touch 和iPad都可以. 2,蜂窝式移动电话 ...
- 分布式Session一致性解决方案有哪些?
1.使用cookie代替session(不安全,不推荐使用) 2.使用数据库存储session(效率低,不推荐使用) 3.使用nginx反向代理ip绑定方法,同一个ip只能在同一台服务器上进行访问(不 ...
- Ubuntu16.04搭建kubernetes v1.11.2集群
1.节点介绍 master cluster-1 cluster-2 cluster-3 hostname k8s-55 k8s-5 ...
- JS原生添加删除class的方法
之前习惯了使用jquery的addClass的方法,然后就去找了下别人写的代码. [javascript] view plain copy function hasClass(obj,cls) { r ...
- JavaSE——打印流
打印流: 类PrintStream: PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.它还提供其他两项功能.与其他输出流不同,PrintStream 永远不会抛 ...
- 新飞电器的BI建设案例
一.河南新飞电器简介 河南新飞电器在制造行业内属于领先地位,其信息化程度较高,面对系统多且杂乱的情况,一个集中展示数据的平台就显得尤为重要.使用BI就是为了在一个相对统一的平台展示需要查看的数据,供决 ...
- Python习题(第3课)
一.独一无二的路 从前有一只小小的机器人叫小器,小器站在一个M*N的格子地板的最左上角,很孤单,世界辣么大,它也想去看看,经过不懈的努力它终于可以(只能)向下或者向右移动啦,它有一个宏伟的愿望就是要穿 ...
- CSS| position定位和float浮动
对基础知识再度做个巩固和梳理. 一.position定位 (一):position的属性 1.absolute:生成绝对定位的元素,相对于最近一级定位不是static的父元素来进行定位: 2.rela ...