(Python pickle模块) Python pickle函数详解:对象的持久化存储
Python中的pickle模块是一个可用来在文件之间共享对象和重用对象的模块。它的持久化存储的功能是通过将对象序列化然后保存到磁盘中实现,或者通过网络协议来传输。
pickle模块提供了四个功能:dump、dumps、load、loads。
pickle.dump(obj, file, protocol=None, *, fix_imports=True)
: 这个方法可以将对象序列化并保存到file中去。参数obj
是要序列化的对象,file
是保存序列化对象的文件,protocol
是指定序列化使用的协议。pickle.dumps(obj, protocol=None, *, fix_imports=True)
: 这个方法可以将对象序列化为字符串。参数和dump方法类似。pickle.load(file, *, fix_imports=True, encoding="ASCII", errors="strict")
: 这个方法是从file中读取字符串,并返回该字符串反序列化后的对象。pickle.loads(s, *, fix_imports=True, encoding="ASCII", errors="strict")
: 这个方法是将字符串反序列化为对象。
这就是pickle模块提供的基础功能,其实用法也并不复杂。接下来是一个简单的例子:
import pickle
# 这是我们要序列化的对象
data = {
'a': [1, 2.0, 3, 4+6j],
'b': ("character string", b"byte string"),
'c': {None, True, False}
}
# 使用dump方法进行序列化
with open('data.pickle', 'wb') as f:
pickle.dump(data, f)
然后,我们可以用以下代码来反序列化刚才保存的对象:
import pickle
# 使用load方法进行反序列化
with open('data.pickle', 'rb') as f:
data = pickle.load(f)
print(data)
程序执行完毕后,就会在控制台上打印出刚才保存的数据。
一点需要注意的是,pickle序列化的数据在跨语言、跨平台时可能会遇到问题,因此在这种情况下,更推荐使用json或者xml进行数据的序列化和反序列化。
(前端限制) http请求报错:413 Payload Too Large的原因和解决办法 413 Payload Too Large:HTTP 请求报错解决方案 全网首发(图文详解1)
(421) http请求报错:421 Misdirected Request的原因和解决办法 HTTP错误421:Misdirected Request原因和解决方法 全网首发(图文详解1)