推荐答案
// www.javascriptcn.com code example
import pickle
# 序列化对象
data = {'key': 'value'}
with open('data.pkl', 'wb') as file:
pickle.dump(data, file)
# 反序列化对象
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)
print(loaded_data) # 输出: {'key': 'value'}本题详细解读
1. 什么是序列化和反序列化?
序列化是将对象转换为字节流的过程,以便将其存储在文件中或通过网络传输。反序列化则是将字节流转换回对象的过程。
2. pickle 模块的作用
pickle 是 Python 标准库中的一个模块,用于序列化和反序列化 Python 对象。它可以将几乎任何 Python 对象转换为字节流,并且可以将字节流转换回原始对象。
3. 序列化过程
- 使用
pickle.dump()函数将对象序列化并写入文件。 - 第一个参数是要序列化的对象,第二个参数是文件对象,文件必须以二进制写模式 (
'wb') 打开。
with open('data.pkl', 'wb') as file:
pickle.dump(data, file)4. 反序列化过程
- 使用
pickle.load()函数从文件中读取字节流并反序列化为对象。 - 文件必须以二进制读模式 (
'rb') 打开。
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)5. 注意事项
pickle模块不保证跨语言兼容性,序列化的数据只能在 Python 中使用。- 反序列化时,确保数据来源可信,以避免安全风险。
pickle模块支持大多数 Python 对象,但某些对象(如文件句柄、网络连接等)无法序列化。