Python中JSON解析
Python2.6开始加入了JSON模块。
Python的JSON模块序列化和反序列化分别是encoding和decoding。
- encoding :将一个Python对象编码成JSON字符串。
- decoding:将JSON格式字符串解码成Python对象。
对简单的数据类型可以直接处理。如:string、unicode、int、float、list、tuple、dict
json模块编码
这里我们使用
json.dumps()
方法将一个Python数据类型列表编码(encoding)成为json格式的字符串。如:
>>> import json
>>> data = [{
'a':"A",'b':(2,4),'c':3.0}]
>>> print "data :", repr(data)
data : [{
'a': 'A', 'c': 3.0, 'b': (2, 4)}]
>>> data_json = json.dumps(data)
>>> print data_json
[{
"a": "A", "c": 3.0, "b": [2, 4]}]
repr()
是将一个对象转成字符串显示,注意只是显示用,有些对象直接转字符串会出错。如list,dict使用
str()
是无效的,但使用repr可以,这是为了看它们都有哪些值。
观察两次打印的结果,会发现Python对象转成JSON字符串以后,会有些变化,原元组被改成了json的数组。
在json的编码过程中,会存在从Python原始类型转化json类型的过程,但这两种语言的类型存在一些差异,对照表如下:
#对比实例
>>> a = [{
1:12, 'a':12.3}, [1,2,3], (1,2), 'asd', u'ad', 12, 13L, 3.3, True, False, None]
>>> print json.dumps(a)
[{
"a": 12.3, "1": 12}, [1, 2, 3], [1, 2], "asd", "ad", 12, 13,
版权声明:本文为SeeTheWorld518原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。