Python中什么是pickling和unpickling?

您所在的位置:网站首页 python保存在什么文件里 Python中什么是pickling和unpickling?

Python中什么是pickling和unpickling?

#Python中什么是pickling和unpickling?| 来源: 网络整理| 查看: 265

IT培训班

  在Python中,pickling和unpickling是用于序列化和反序列化对象的过程。

  Pickling是将Python对象转换为字节流的过程,以便可以将其保存到文件、数据库或通过网络传输。通过pickling,可以将复杂的对象转换为一系列字节,然后可以将这些字节重新转换回对象。这对于在不同的Python解释器之间传递对象或将对象永久保存在存储介质上都非常有用。

  Unpickling是pickling的反向过程,即从字节流中恢复原始对象的过程。通过unpickling,可以将之前pickled的对象重新还原为原始的Python对象。

  下面是一个简单的代码演示:

import pickle # 定义一个对象 class Person:     def __init__(self, name, age):         self.name = name         self.age = age     def __str__(self):         return f"Person(name={self.name}, age={self.age})" # Pickling:将对象转换为字节流 person = Person("Alice", 25) pickled_person = pickle.dumps(person) # 打印pickled_person,即字节流表示的对象 print(pickled_person) # Unpickling:将字节流转换为对象 unpickled_person = pickle.loads(pickled_person) # 打印unpickled_person,即恢复的对象 print(unpickled_person)

  输出:

b'\x80\x04\x95\x1b\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x06Person\x94\x93\x94)\x81\x94}\x94(\x8c\x04name\x94\x8c\x05Alice\x94\x8c\x03age\x94K\x19ub.' Person(name=Alice, age=25)

  在上面的示例中,我们首先定义了一个Person类,该类具有name和age属性。然后,我们创建一个Person对象,并使用pickle.dumps()函数将其转换为字节流。接下来,我们使用pickle.loads()函数将字节流转换回原始对象。

  注意:在实际使用pickling和unpickling时,可能需要将字节流写入文件或从文件中读取字节流。这只是一个简单的示例,用于演示pickling和unpickling的基本概念。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3