Python JSON 解析

  • Post author:
  • Post category:python



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类型的过程,但这两种语言的类型存在一些差异,对照表如下:

2

#对比实例
>>> 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 版权协议,转载请附上原文出处链接和本声明。