Python7-使用pickle模块将Python对象序列化
1.序列化与反序列化
序列化和反序列化:序列化是将Python对象转换为字节流的过程,而反序列化则是将字节流转换回Python对象的过程。pickle
模块提供了dump()
和dumps()
函数用于序列化,以及load()
和loads()
函数用于反序列化。
2.pickle模块使用
pickle
模块是Python的标准库之一,用于序列化(即将Python对象转换为字节流)和反序列化(即将字节流转换为Python对象)。pickle
模块可以将复杂的对象(包括自定义类的实例)转换为字节流,以便在存储或传输时使用。
使用dump()
和load()
:使用dump()
函数将对象序列化并保存到文件中。
import pickle
data = {'name': 'Alice', 'age': 25}
with open('data.pkl', 'wb') as f:
pickle.dump(data, f)
with open('data.pkl', 'rb') as f:
loaded_data = pickle.load(f)
print(loaded_data) # 输出: {'name': 'Alice', 'age': 25}
使用dumps()
和loads()
:如果将对象序列化为字节流,而不是保存到文件中,你可以使用dumps()
函数。
import pickle
data = {'name': 'Alice', 'age': 25}
serialized_data = pickle.dumps(data)
loaded_data = pickle.loads(serialized_data)
print(loaded_data) # 输出: {'name': 'Alice', 'age': 25}
3.pickle模块注意
pickle
模块序列化的字节流是Python特定的格式,不适用于与其他编程语言交互。如果需要与其他语言进行数据交换,可以考虑使用通用的数据交换格式,如JSON。