序列化与反序列化【python】

**序列化:**将对象转换为字节序列的过程
**反序列化:**将字节序列转换成目标对象的过程
**作用:**分布式系统会遇到对象数据传输情况,如:在A系统中查数据库select * from test;这个对象要在另一个节点B展示,那么就要把该对象传到B节点上,网络传输时是二进制流的形式,在A需要先把对象类型转化字节流的形式,在B需要把字节流文件转换成对象类型。

PYthon中实现

>>> #在A系统上执行 
>>>test={"a": 1, "b": 2, "c": 3}               #对象类型
>>> print test  
{'a': 1, 'c': 3, 'b': 2}
>>>
>>> import cPickle             #转换库
>>> 
>>> cPickle.dump(test,open("cpikele.pkl","wb"))              #dump方法将对象转成字节流文件(反序列化)
>>> 
>>> 
>>> f =open("cpikele.pkl","r")                   #读取转换后的文件
>>> f.read()
"(dp1\nS'a'\nI1\nsS'c'\nI3\nsS'b'\nI2\ns."
>>> 


>>>  #在B系统是上执行
>>> data = cPickle.load(open("cpikele.pkl","rb"))                 #load方法来序列化
>>> print data 
{'a': 1, 'c': 3, 'b': 2}
>>> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值