Python处理JSON.docVIP

  • 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参数的作用是去掉,,:后面的空格,从上面的输出结果都能看到, :后面都有个空格,这都是为了美化输出结果的作用,但是在我们传输数据的过程中,越精

文档评论(0)

1亿VIP精品文档

相关文档