通过示例了解 Python Pickling

pythonserver side programmingprogramming更新于 2025/10/25 23:40:17

在本文中,我们将学习如何在 Python 中 pickle 不同的数据类型。我们可以 pickle 布尔值、整数、浮点数、复数、字符串、元组、列表、集合和包含可 pickle 对象的字典。某些实体(如生成器、内部本地类、lambda 函数)无法 pickle。

什么是 pickle?

Pickling 涉及对对象类型和相关结构的 Python 实体进行序列化和反序列化的连续循环,也称为编组或展平。这涉及将位于内存中的对象转换为可以存储在磁盘上或发送到本地网络的字节形式。

使用时有限制吗?

当我们想使用不同的编程语言共享数据时,最好不要使用 pickle 模块。这意味着无法保证跨平台兼容性。

无需文件处理即可对原始数据进行 pickle。在本模块中,我们将学习如何通过序列化过程将原始数据 pickle 到二进制文件中。

示例

# Python pickling
import pickle as pk
def learnData():
   # 要存储在数据库中的数据
   dict_1 = {'tutorial':'point','Python':'3.x'}
   dict_2 = {'Data structure':'dictionary','pickling':'serialization'}
   # 数据库
   db = {}
   db["1"] = dict_1
   db["2"] = dict_2
   # 使用文件指针以追加模式打开二进制文件
   fp = open("Newfile", "ab")
   # 源,目标
   pk.dump(db, fp)
   fp.close()
def displayData():
   # 使用文件指针以读取模式打开二进制文件
   fp = open('Newfile', 'rb')
   db = pk.load(fp)
   for i in db:
      print(i, '=>', db[i])
   fp.close()
if __name__ == '__main__':
   learnData()
   displayData()

输出

dict_1 = {'tutorial':'point','Python':'3.x'}
dict_2 = {'Data structure':'dictionary','pickling':'serialization'}

结论

在本文中,我们学习了在 Python 3.x 或更早版本中使用内置 pickle 模块进行 pickle 和 unpickle。


相关文章


有用资源