序列化与反序列化

2016-11-07  本文已影响0人  _karen

定义

只有二进制数据才能在网络中传输,客户端调用远程函数和服务端返回的值传输需要序列化反序列化的过程。

python序列化与反序列化

pickle库

pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储,也可以简单的将字符进行序列化。pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象,也可以将字符进行反序列化。和json不同的是:json 更适合跨语言 可以处理字符串,基本数据类型;pickle python专有,更适合处理复杂类型的序列化。

json库

json是一种轻量级的数据交换格式,数据类型。

MessagePack库

是一个基于二进制高效的对象化序列类库,可用于跨语言通信
支持python,ruby,java,C/C++等众多语言
常用方法
Packb序列化对象,提供了dumps兼容pickle和json
Unpackb反序列化对象,提供了loads来兼容
Pack序列化对象保存到文件对象,提供了dump来兼容
Unpack反序列化对象保存到文件对象,提供了load来兼容

注意点

将数据序列化后通过网络传输到远程节点,远程服务器上的服务将接受到的数据反序列化后,就可以使用了,要注意的是,远程接收端,反序列化时候必须有对应的数据类型,否则就会报错。尤其是自己定义的类。必须远程得有一致的定义。

上一篇下一篇

猜你喜欢

热点阅读