{site_name}

{site_name}

🌜 搜索

Python pickle 是一种用于将 Python 对象序列化和反序列化的标准模块

Python 𝄐 0
python对象序列化相对安全的方法,python对象序列化和反序列化,pythonjson序列化,python class 序列化,对象的序列化结果,对象序列化要实现哪个接口
Python pickle 是一种用于将 Python 对象序列化和反序列化的标准模块。序列化是指将对象转换为字节流,以便可以存储在文件或网络中传输,并在需要时重新加载为对象。反序列化是指从字节流中恢复对象。

pickle 可以序列化几乎所有 Python 对象,包括列表、元组、字典、函数、类等等。它通过递归地遍历对象图,将每个对象都转换为二进制数据,最终生成一个连续的字节流。这个字节流可以被写入到磁盘或发送到远程机器,然后再通过反序列化将其恢复为 Python 对象。

以下是一个简单的例子,演示了如何使用 pickle 序列化和反序列化 Python 对象:

python
import pickle

# 创建一个 Python 对象
data = {'name': 'Alice', 'age': 30, 'emails': ['alice@example.com', 'alice@gmail.com']}

# 将对象序列化为字节流
bytes_data = pickle.dumps(data)

# 将字节流写入文件
with open('data.pickle', 'wb') as f:
f.write(bytes_data)

# 从文件中读取字节流并反序列化为 Python 对象
with open('data.pickle', 'rb') as f:
bytes_data = f.read()
loaded_data = pickle.loads(bytes_data)

# 打印反序列化后的对象
print(loaded_data)


输出:


{'name': 'Alice', 'age': 30, 'emails': ['alice@example.com', 'alice@gmail.com']}


在这个例子中,我们创建了一个包含名称、年龄和电子邮件列表的 Python 字典,并使用 pickle 序列化为字节流。然后将字节流写入文件 data.pickle 中。接着,我们从文件中读取字节流并反序列化为 Python 对象。最后,我们打印出反序列化后的对象,与原始对象相同。