python总结——处理json(json)

2016-05-03  橙子 

python处理json

(转载)

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),可以直接处理。

1、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的编码转换规则是:

2、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: [{u'a': u'A', u'c': 3.0, u'b': [2, 4]}]

ORIGINAL: <type 'tuple'>

DECODED: <type 'list'>

解码过程中,json的数组最终转换成了python的list,而不是最初的tuple类型


644°/6445 人阅读/0 条评论 发表评论

登录 后发表评论