Python中的pickle模块解析
作者:XWenXiang
这篇文章主要介绍了Python中的pickle模块解析,pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的二进制序列化和反序列化,需要的朋友可以参考下
pickle模块简介
pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的 二进制 序列化和反序列化。
序列化是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程。反序列化则反之。
pickle模块语法
pickle.dumps
将 python 对象作为 bytes 类型直接返回
import pickle class MyCls(object): pass x = pickle.dumps(MyCls) print(x)
打印结果
b'\x80\x04\x95\x16\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x05MyCls\x94\x93\x94.'
示例中将一个类的结构序列化成了字节串
pickle.dump
和 json.dump 一样也是写入文件的
import pickle class MyCls(object): pass with open('obj', 'wb')as f: pickle.dump(MyCls, f)
pickle.loads
将字节流返回成一个对象的原本的结构形式
import pickle class MyCls(object): name = 'x' x = pickle.dumps(MyCls) # print(x) y = pickle.loads(x) print(y) print(y.name)
打印结果
<class '__main__.MyCls'>
x
返回出来的是原本对象的结构,所以原本使用的方法都不变
pickle.load
将文件中的字节串反序列化
import pickle class MyCls(object): name = 'x' with open('obj', 'wb')as e: pickle.dump(MyCls, e) with open('obj', 'rb')as f: x = pickle.load(f) print(x.name)
到此这篇关于Python中的pickle模块解析的文章就介绍到这了,更多相关pickle模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!