python序列化pickle
来源:互联网 发布:数字图像处理算法研究 编辑:程序博客网 时间:2024/05/01 01:56
什么叫做序列化?
将内存中的对象转换为线性结构的字符串(有时也称字节流),以便存储或者传输.这种对象转换为字符串的行为通常叫做序列化.内存中的任意数据结构都可以映射为一个字符串.
序列化
函数签名
#pickle.dump(obj, file[, protocol])
首先尝试将table对象序列化写入文件dbase中,写入方式是字节形式:
table = {'a' : [1, 2, 3], 'b' : ['spam', 'egg'], 'c' : {'name' : 'Bob'}}with open('dbase', 'wb') as ff: pickle.dump(table, ff)
如果我们打开这个dbase文件,可以看到如下一些看起来没意义的字符串,其实是python用内部约定的方式对table对象转换为了这种字符串.这里请注意不同版本的python序列化后的字符串可能有所不同,因此序列化适用于保存不是特别重要的数据.否则升级python版本后,反序列化会还原对象时会出现不一致的问题.
(dp0S'a'p1(lp2I1aI2aI3asS'c'p3(dp4S'name'p5S'Bob'p6ssS'b'p7(lp8S'spam'p9aS'egg'p10as.
也可以序列化后不用写入文件,直接用pickle.dump以字符串返回:
string = pickle.dumps(table)
反序列化
函数签名:
pickle.load(file)
从dbase文件读出反序列化还原对象:
with open('dbase', 'rb') as fobj: table_ = pickle.load(fobj)print table_
输出:
{'a': [1, 2, 3], 'c': {'name': 'Bob'}, 'b': ['spam', 'egg']}
从输出结果不难看出,与原来的table字典内容相同.
同样我们可以直接读入字符串反序列化:
obj = pickle.loads(string)
0 0
- python序列化pickle
- Python序列化模块pickle
- Python pickle序列化模块
- Python--序列化之pickle
- Python 3.6 Pickle 序列化
- python pickle模块 序列化
- python中使用pickle进行序列化
- Python 之 pickle/json序列化
- Python:pickle模块(序列化)
- Python-json与pickle数据序列化
- python序列化模块json和pickle
- pickle, cPickle 模块:序列化 Python 对象
- [python]使用pickle进行序列化
- python 中的pickle数据序列化模块
- python中使用pickle进行序列化
- python序列化存储模块:Pickle
- Python序列化——pickle模块
- python学习(5):python序列化pickle
- PYTHON-函数特性
- HDU 4641 K-string 2013年多校第4场J题 后缀自动机
- zedboard使用nfs挂载根文件系统-linux内核启动参数bootargs详解
- VGA to RGB + composite sync -converter
- hdoj 1047 Integer Inquiry
- python序列化pickle
- pomelo中的基本概念
- 两大设计模式 塑造高可读性的网页布局
- C++实现ftp客户端
- 【c语言】 求1*2*3*4*5
- hdoj 1176 免费馅饼 【DP 好题】
- Android开发如何在4.0及以上系统中自定义TitleBar
- Lambda 表达式
- 百度空间宣布将关闭 5月7日正式迁至百度云