1.1. JSON简介:
JavaScript Object Notation(JavaScript对象表示法)
JSON是存储和交换文本信息的语法。类似XML
JSON比XML更小、更快、更易解析
1.2. JSON语法规则:
(1)数据在名称/值对中 (重要)
(2)数据由逗号分隔
(3)花括号保存对象
(4)方括号保存数组
如:
1.3. JSON对象:
{“firstName”:”john”,”lastName”:”Doe”}
1.4. JSON数组:
{
“employees”:[
{“firstName”:”John”,”lastName”:”Doe”},
{“firstName”:”Anna”,”lastName”:”Smith”},
{“firstName”:”Peter”,”lastName”:”Jones”}
]
}
1.5. json.dumps()和json.loads()
json模块的序列化和反序列化分别是dumps和loads
json.dumps():将一个python对象编码成json字符串
json.loads():将JSON格式的字符串解码成python对象
>>> 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, 3.3, true, false, null]
>>> print u"解码后:
",json.loads(json.dumps(a))
解码后:
[{u'a': 12.3, u'1': 12}, [1, 2, 3], [1, 2], u'asd', u'ad', 12, 13, 3.3, True, False, None]
>>>
Json.dumps(obj,skipkeys=False,ensure_ascii=True,check_circular=True,allow_nan=True,cls=None,indent=None,separators=None,encoding=”utf-8”,default=None,sort_keys=False,**kw)
该方法返回的是一个json字符串,是一个str对象encodedjson
dumps函数的参数很多,我一般会用到的如下:
(1)sort_keys:
data = [ { 'a':'A', 'c':(2, 4), 'b':3.0 }]
print json.dumps(data)
print json.dumps(data, sort_keys=True)
(2)indent:
print json.dumps(data, sort_keys=True, indent=3)
(3)separators:
print len(json.dumps(data, separators=(',',':')))
print json.dumps(data,separators=(',',':'))
(4)skipkeys:
data= [ { 'a':'A', 'b':(2, 4), 'c':3.0, (1,2):'D tuple' } ]
print u"不设置skipkeys 参数"
try :
res1 = json.dumps(data)
except Exception, e:
print e
print u"设置skipkeys 参数"
print json.dumps(data, skipkeys=True)
......