Python—序列化和反序列化模块(jsonpickle和shelve)
Posted 刘_love_田
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python—序列化和反序列化模块(jsonpickle和shelve)相关的知识,希望对你有一定的参考价值。
什么是序列化
我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化。在python中为pickling,在其他语言中也被称之为serialization,marshalling,flattening等等。
即序列化之后就可以将内存中的程序内容写入硬盘或者通过网络传输到其他机器上去。
反序列化的过程则相反:将硬盘中的内容变为可以在内存中运行的程序的过程称为反序列化。
Json模块
# encoding:utf-8 # 通过序列化和反序列化将内容存储到文件 import json jsonDict = {"name": "张三", "age": 26} # json encode ---> json编码(将python对象转换成json对象)。dict --> json str jsonDumps = json.dumps(jsonDict) # dumps --> 序列化 print jsonDumps, type(jsonDumps) # 结果:{"age": 26, "name": "u5f20u4e09"} <type ‘str‘> with open("information.txt", "w") as fw: fw.write(jsonDumps) # json decode ---> json解码(将json对象转换成python对象)。json str --> dict with open("information.txt", "r") as fr: jsonDumps = fr.read() # loads --> 反序列化 jsonLoads = json.loads(jsonDumps) print jsonLoads, type(jsonLoads) # 结果:{u‘age‘: 26, u‘name‘: u‘u5f20u4e09‘} <type ‘dict‘>
以上是关于Python—序列化和反序列化模块(jsonpickle和shelve)的主要内容,如果未能解决你的问题,请参考以下文章