赞
踩
序列化:要设计一套协议,按照某种规则,把内存中数据保存到文件中。文件是一个字节序列,所以必须把数据转换成字节序列,输出到文件。这就是序列化。反之从文件的字节序列恢复到内存,就是反序列化。
定义:
pickle库:
Python中的序列化,反序列化模块:
序列化应用:
一般来说,本地序列化的情况,应用较少,大多数场景都应用在网络传输中。
将数据序列化后通过网络传输到远程结点,远程服务器上的服务将接受到的数据反序列化后,就可以使用了。
但是,要注意一点,远程接收端,反序列化时必须有对应的数据类型,否知就会报错,尤其是自定义类。必须远程得有一致的定义。
现在, 大多数项目,都不是单机的,也不是单服务的。需要通过网络数据传送到其他节点上去,这就需要大量的序列化,反序列化过程。
但是,问题是,Python程序之间还可以都是用pickle解决序列化,反序列化,如果是跨平台,跨语言,跨协议pickle就不太适合了,就需要公共的协议。例如XML,Json,Protocol Buffer等。
不同的协议,效率不同,使用不同场景,要根据不同的情况分析选型。
Josn:
JOSN(JavaScript Object Notation,JS 对象标记)是一种轻量级的数据交换格式。它基于ECMAScript(w3c组织制定的JS规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
Json的数据类型:
json模块:
Python于json,Python支持少量内建数据类型到Json类型的转换。
Python类型 | Json类型 |
True | true |
False | false |
None | null |
str | string |
int | integer |
float | float |
list | array |
dict | odject |
常用方法:
Python类型 | Json类型 |
dumps | json编码 |
dump | json编码并存入文件 |
loads | json解码 |
load | json解码,从文件读取数据 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。