文件IO序列化及反序列化-创新互联
序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。
简单点言之:通过设计的一套协议,按照莫种规则,把内存中的数据保存到文件中或者直通过网络传输。把数据转换为字节序列,输出到文件就是序列化,反正,从文件的字节序列恢复到内存,就是反序列化。
其中就有多种库对此过程进行协助:
pickle库:
dumps 对象序列化为bytes对象
dump 对象序列化为文件对象,就是存入文件
loads 从bytes对象反序列化
load 从bytes对象反序列化,从文件中读取一般来说序列化多应用于网络传输中,但远程接收端,反序列化必须有对应的数据类型,否则就会报错。随着现在大量服务需结合网路,排拖单机,pickle这种只适合于python程序之间的协议就没了作用。所以就需要公共协议。比如XML·json·MessagePack。
json库:
dumps json编码
dump json编码并存入文件
loads json解码
load json解码,从文件读取数据- MessagePack库:
- packb 序列化对象
unpackb 反序列化对象
pack 序列化对象并保存到文件对象
unpack 反序列化对象保存到文件对象
类似于json,但更快速,轻巧。
兼容json和pickle。
最佳序列化选择json
其实序列化即反序列化主要操作就是这两个步骤,主要是要了解这主要概念及再实际操作中选择出对的协议进行操作,保证事半功倍。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享标题:文件IO序列化及反序列化-创新互联
网站链接:http://pwwzsj.com/article/djsiod.html