码迷,mamicode.com
首页 > 编程语言 > 详细

Python—序列化和反序列化模块(json、pickle和shelve)

时间:2019-10-14 12:37:54      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:json   ati   type   format   with open   通过   shelve   等等   form   

什么是序列化

我们把对象(或者变量)从内存中变为可存储或者可传输的过程称为序列化。在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": "\u5f20\u4e09"}  <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‘\u5f20\u4e09‘}  <type ‘dict‘>

 

Python—序列化和反序列化模块(json、pickle和shelve)

标签:json   ati   type   format   with open   通过   shelve   等等   form   

原文地址:https://www.cnblogs.com/liuhaidon/p/11670755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!