- 13
- 0
- 约7.93千字
- 约 10页
- 2016-04-13 发布于浙江
- 举报
Python处理JSON
概念
序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。
JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。
Python2.6开始加入了JSON模块,无需另外下载,Python的Json模块序列化与反序列化的过程分别是?encoding和?decoding
encoding:把一个Python对象编码转换成Json字符串decoding:把Json格式字符串解码转换成Python对象对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。
json.dumps方法对简单数据类型encoding:
import json
data = [{a:A,b:(2,4),c:3.0}] #list对象
print DATA:,repr(data)
data_string = json.dumps(data)
print JSON:,data_string
输出:
DATA: [{a:A,c:3.0,b:(2,4)}] #python的dict类型的数据是没有顺序存储的
JSON: [{a:A,c:3.0,b:[2,4]}]
JSON的输出结果与DATA很相似,除了一些微妙的变化,如python的元组类型变成了Json的数组,Python到Json的编码转换规则是:?
json.loads方法处理简单数据类型的decoding(解码)转换
import json
data = [{a:A,b:(2,4),c:3.0}] #list对象
data_string = json.dumps(data)
print ENCODED:,data_string
decoded = json.loads(data_string)
print DECODED:,decoded
print ORIGINAL:,type(data[0][b])
print DECODED:,type(decoded[0][b])
输出:
ENCODED: [{a: A, c: 3.0, b: [2, 4]}]
DECODED: [{ua: uA, uc: 3.0, ub: [2, 4]}]
ORIGINAL: type tuple
DECODED: type list
解码过程中,json的数组最终转换成了python的list,而不是最初的tuple类型,Json到Python的解码规则是:?
json的人文关怀
编码后的json格式字符串紧凑的输出,而且也没有顺序,因此dumps方法提供了一些可选的参数,让输出的格式提高可读性,如sort_keys是告诉编码器按照字典排序(a到z)输出。
import json
data = [ { a:A, b:(2, 4), c:3.0 } ]
print DATA:, repr(data)
unsorted = json.dumps(data)
print JSON:, json.dumps(data)
print SORT:, json.dumps(data, sort_keys=True)
输出:
DATA: [{a: A, c: 3.0, b: (2, 4)}]
JSON: [{a: A, c: 3.0, b: [2, 4]}]
SORT: [{a: A, b: [2, 4], c: 3.0}
indent参数根据数据格式缩进显示,读起来更加清晰:
import json
data = [ { a:A, b:(2, 4), c:3.0 } ]
print DATA:, repr(data)
print NORMAL:, json.dumps(data, sort_keys=True)
print INDENT:, json.dumps(data, sort_keys=True, indent=2)
输出:
DATA: [{a: A, c: 3.0, b: (2, 4)}]
NORMAL: [{a: A, b: [2, 4], c: 3.0}]
INDENT: [
{
a: A,
b: [
2,
4
],
c: 3.0
}
]
separators参数的作用是去掉,,:后面的空格,从上面的输出结果都能看到, :后面都有个空格,这都是为了美化输出结果的作用,但是在我们传输数据的过程中,越精
您可能关注的文档
- fbi及sec介入gsk在华行贿调查.ppt
- fortran77数据格式.doc
- fom6_tif05 管理学双语.doc
- case 超音问题点分析----工程.ppt
- flash player、air、flex sdk 大全.doc
- gh-6600b地下管线探测仪用户手册.doc
- gtwls.06.14-2012 固体废弃物管理程序.doc
- google android sdk模拟器安装步骤.doc
- google glass api 开发指南(google翻译附英文).doc
- ii采区专用回风上山(修订版)12.8.doc
- 全过程工程管理造价咨询工程监理项目服务方案投标方案(技术部分).doc
- 招标代理服务投标技术服务方案(技术方案).doc
- AI大模型与AIGC技术在公安领域的应用解决方案(99页 PPT).pptx
- 工业4.0智能制造数字工厂规划方案.pptx
- 树立社会主义核心价值观.docx
- 三年(2023-2025)中考历史真题分类汇编(全国)专题21 科技文化与社会生活(解析版).docx
- 2025年中考道德与法治真题完全解读(吉林卷).pdf
- 2025年中考道德与法治真题完全解读(安徽卷).pdf
- 三年(2023-2025)中考历史真题分类汇编(全国)专题14 人民解放战争(解析版).pdf
- 三年(2023-2025)广东中考历史真题分类汇编:专题03 中国近代史(八年级上册)(解析版).docx
最近下载
- Leica_TS16_UM_v2-0-0_zh-徕卡实用说明书.pdf VIP
- 医院感染暴发控制标准2025版课件.pptx VIP
- 医学免疫学(全套课件272P)ppt课件.pptx VIP
- 古建筑安全监测技术标准.pdf VIP
- A4版2023安徽省中考数学答题卡.pdf
- Vaillant威能VIH CN 水罐参数技术参数.pdf
- 喷墨打印OLED技术全球竞争格局与发展策略.docx VIP
- 2025年9月山西医科大学附属晋中医院(晋中市第一人民医院)招聘编制外人员38人笔试模拟试题及答案解析.docx VIP
- 2025年9月山西医科大学附属晋中医院(晋中市第一人民医院)招聘编制外人员38人考试参考试题及答案解析.docx VIP
- 人教版物理8年级下册全册教学课件.pptx
原创力文档

文档评论(0)