python内置序列化模块pickle使用详解
- 2016-10-30 15:04:40
- 开发
- 47
- shevechco
pickle是Python的标准序列化模块,用于将Python对象转换为字节流(序列化)以及将字节流恢复为对象(反序列化)。它支持几乎所有的Python 数据类型和对象。
pickle提供了4个方法,它们分别是dump、load、dumps、loads
1.dump方法
dump方法可以将一个Python序列化对象为一个二进制字节流保存到文件中
import pickle
arr = [1,2,"test", True]
with open("test.pkl", "wb") as f:
pickle.dump(arr, f)
2.load方法正好和dump方法相反,可以讲一个文件中的二进制流转换成python对象
import pickle
with open("test.pkl", "rb") as f:
arr2 = pickle.load(f)
print(arr2)
#打印
[1, 2, 'test', True]
3.dumps将Python列表序列化为一个二进制字节流
import pickle
arr = [1,2,"test", True]
arr2 = pickle.dumps(arr)
print(arr2)
#打印
b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02\x8c\x04test\x94\x88e.'
4.loads方法则和dumps方法相反,将一个二进制流转换成python对象
import pickle
pkl = b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02\x8c\x04test\x94\x88e.'
arr = pickle.loads(pkl)
print(arr)
#打印
[1, 2, 'test', True]
pickle具有以下优点。
有时候需要将Python对象保存到本地文件或数据库中以便日后使用或恢复状态。pickle模块提供了一种简单而强大的序列化和反序列化对象的方式,可以轻松地实现对象持久化。
在分布式系统中,常常需要通过网络将Python对象传输到远程节点中。pickle模块可以将Python对象序列化为二进制字节流,然后通过网络传输。
数据分析工具通常需要从磁盘或数据库中读取数据,将其转换为Python对象后进行处理和分析。pickle模块可以将Python对象序列化为二进制字节流,从而加速数据读取和处理的过程。
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/267