Python pickle模块实现对象序列化

小满
小满
发布时间:2026-10-13 | 4人浏览过
原创

本文详解Python pickle模块的对象序列化功能,通过pickle.dumps和loads实现内存对象与字节流的转换,并结合文件读写演示dump与load方法,帮助开发者掌握数据存储与传输的核心技术。

Python pickle模块对象序列化教程

本文深入解析Python中pickle模块在对象序列化方面的应用,通过具体示例代码进行详细说明,为读者的学习或实际工作提供有价值的参考。

核心作用与内存序列化

核心作用

该模块主要用于将Python对象转换为可存储或传输的格式,实现数据的持久化保存与网络传输。

内存序列化机制

利用pickle.dumps(obj)函数,可将指定的Python对象直接转换为bytes类型的字节数据。

通过pickle.loads(str)函数,能够将之前转换得到的bytes类型数据重新还原为原始的Python对象。


Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import pickle
>>> mydict = {'id':123, 'name':'abc'}
>>> pickle_str = pickle.dumps(mydict)
>>> pickle_str
b'\x80\x03}q\x00(X\x02\x00\x00\x00idq\x01K{X\x04\x00\x00\x00nameq\x02X\x03\x00\x00\x00abcq\x03u.'
>>> newdict = pickle.loads(pickle_str)
>>> newdict
{'id': 123, 'name': 'abc'}

文件持久化与反序列化

文件持久化存储

使用pickle.dump(obj, file)方法,可以将Python对象直接写入打开的文件对象中。

该方式支持连续存储多个对象,在后续读取时,需严格按照对象存入文件的先后顺序依次读取。


>>> import pickle
>>> mydict = {'id':123, 'name':'abc'}
>>> file = open('pickle.txt','wb')
>>> pickle.dump(mydict, file)
>>> file.close()

文件反序列化读取

调用pickle.load(obj, file)函数,可从文件中读取数据并反序列化为对应的Python对象。


>>> import pickle
>>> file = open('pickle.txt','rb')
>>> newdict = pickle.load(file)
>>> file.close()
>>> newdict
{'id': 123, 'name': 'abc'}

以上内容构成了Python pickle模块对象序列化的完整操作流程,希望能为读者的技术实践带来帮助。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表