Python序列化模块pickle
2017-02-11 16:24
351 查看
序列化的应用举例:
1.在磁盘上保存当前程序的状态以便重启时能重新加载;
2.多用户或者分布式系统中数据结构的网络传输时,可将数据序列化和后发送给可信的网络对端,接受者反序列化后可恢复相同的对象;
3.session和cache存储等。
序列化:
将内存中的数据结构在不丢失其身份和类型信息的情况下转换成对象的文本和二进制表示。序列化的对象经过反序列化能恢复为原有对象。
特点:
pickle较通用,其c语言实现:cPickle性能很好,与pickle相似,但cPickle不能被继承。
序列化函数:dump()
反序列化函数:load()
用法:
pickle.dump(obj, file[, protocol]) # 序列化数据到一个文件描述符
load(file) # 将文件中的对象反序列化为原对象
示例:
import cPickle as pickle
my_data = {"name" : "Python", "type" : "Language", "version" : "2.7.5"}
fp = open("picklefile.dat", "wb") #打开要写入的文件
pickle.dump(my_data, fp) #使用dump进行序列化
fp.close()
fp =open("picklefile.dat", "rb")
out = pickle.load(fp) # 反序列化
fp.close()
pickle能够自动维护对象间的引用,如果一个对象上存在多个引用,pickle后不会改变对相间的引用,并能自动处理循环和递归引用
a = ['a','b']
b=a
b.append('c')
p = pickle.dumps((a,b))
a1,b1 = pickle.loads(p)
a1
['a','b','c']
b1
['a','b','c']
a1.append('d')
b1
['a','b','c','d']
参考:
《改善python程序的91个建议》
1.在磁盘上保存当前程序的状态以便重启时能重新加载;
2.多用户或者分布式系统中数据结构的网络传输时,可将数据序列化和后发送给可信的网络对端,接受者反序列化后可恢复相同的对象;
3.session和cache存储等。
序列化:
将内存中的数据结构在不丢失其身份和类型信息的情况下转换成对象的文本和二进制表示。序列化的对象经过反序列化能恢复为原有对象。
特点:
pickle较通用,其c语言实现:cPickle性能很好,与pickle相似,但cPickle不能被继承。
序列化函数:dump()
反序列化函数:load()
用法:
pickle.dump(obj, file[, protocol]) # 序列化数据到一个文件描述符
load(file) # 将文件中的对象反序列化为原对象
示例:
import cPickle as pickle
my_data = {"name" : "Python", "type" : "Language", "version" : "2.7.5"}
fp = open("picklefile.dat", "wb") #打开要写入的文件
pickle.dump(my_data, fp) #使用dump进行序列化
fp.close()
fp =open("picklefile.dat", "rb")
out = pickle.load(fp) # 反序列化
fp.close()
pickle能够自动维护对象间的引用,如果一个对象上存在多个引用,pickle后不会改变对相间的引用,并能自动处理循环和递归引用
a = ['a','b']
b=a
b.append('c')
p = pickle.dumps((a,b))
a1,b1 = pickle.loads(p)
a1
['a','b','c']
b1
['a','b','c']
a1.append('d')
b1
['a','b','c','d']
参考:
《改善python程序的91个建议》
相关文章推荐
- Python 序列化 pickle/cPickle模块使用介绍
- 第九节:python pickle序列化、装饰器、模块
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- python常见模块之序列化(json与pickle以及shelve)
- python学习之路(json & pickle 模块 ---序列化,反序列化)
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- Python库:序列化和反序列化模块pickle介绍
- pickle, cPickle 模块:序列化 Python 对象
- Python pickle序列化模块
- python序列化pickle模块和json模块简单学习
- python序列化模块json和pickle
- Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块
- Python模块学习 -- pickle, cPickle 对象序列化/反序列化
- python 中的pickle数据序列化模块
- Python文件交互,模块与Pickle序列化,正则表达式re模块
- python 之序列化(pickle模块和json模块)
- python序列化 pickle,json模块
- Python:pickle模块(序列化)
- 模块讲解----pickle模块(只在python用的序列化与反序列化)
- python序列化存储模块:Pickle