【pickle】实现python序列化和反序列化

本文介绍了Python中的Pickle模块,用于对象的序列化和反序列化。序列化是将对象转换为二进制以便存储或网络传输,而反序列化则是将这些二进制数据恢复为原来的对象。示例展示了如何使用pickle.dump()和pickle.load()方法在文件中进行操作,以及直接使用pickle.dumps()和pickle.loads()处理字节流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

序列化:将对象转换成二进制便于存储及网路传输

反序列化:解析序列化文件 ,反序列化成对象

python实现序列化和反序列化用到了Pickle模块:

pickle.dump(object,file) :将序列化后的对象以二进制形式写入文件file中,进行保存,不能直接预览

pickle.load(file:将序列化的对象从文件file中读取出来(以二进制的方式操作)

示例如下:

 

 pickle.dumps(obj): 不需要写入文件中,而是直接返回一个字节流

 pickle.loads(file):直接读取字节流信息,而非从文件中读取

示例如下:

 完整代码:

import pickle
class Testdata:
    test = [1, 2, 3]
    def test_dupm_file(self):
        #将test对象以二进制的方式序列化到文件中,会生产一个test.pickle的文件
        with open("test.pickle","wb") as file:
            pickle.dump(self.test,file)
        #解析序列化文件,反序列化成对象(以二进制的方式读取出来)
        with open("test.pickle","rb") as file:
            print(pickle.load(file))

    def test_dump_string(self):
        data={"name":"lxj","age":18}
        #将data对象直接序列化为字节流,不需要写入文件
        du=pickle.dumps(data)
        print(du)
        #直接解析字节流反序列化为对象
        load=pickle.loads(du)
        print(load)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值