Python pickle模块

pickle模块简介

pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的二进制序列化和反序列化。序列化是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程。反序列化则反之。

pickle模块语法

pickle.dumps

将 python 对象作为 bytes 类型直接返回

代码示例

		import pickle
		
		class MyCls(object):
		    pass
		    
		x = pickle.dumps(MyCls)
		print(x)

打印结果
		b'\x80\x04\x95\x16\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x05MyCls\x94\x93\x94.'

示例中将一个类的结构序列化成了字节串
pickle.dump

和 json.dump 一样也是写入文件的

代码示例
		import pickle
		
		class MyCls(object):
		    pass
		
		with open('obj', 'wb')as f:
		    pickle.dump(MyCls, f)

pickle.loads

将字节流返回成一个对象的原本的结构形式

代码示例

		import pickle

		class MyCls(object):
		    name = 'x'
		
		x = pickle.dumps(MyCls)
		# print(x)
		y = pickle.loads(x)
		print(y)
		print(y.name)
		
打印结果
		<class '__main__.MyCls'>
		x
		
返回出来的是原本对象的结构,所以原本使用的方法都不变
pickle.load

将文件中的字节串反序列化

代码示例

		import pickle
		
		class MyCls(object):
		    name = 'x'
		
		with open('obj', 'wb')as e:
		    pickle.dump(MyCls, e)
		with open('obj', 'rb')as f:
		    x = pickle.load(f)
		
		print(x.name)


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值