python对象转化为json串、json串转化为python串

1.1. JSON简介:

JavaScript Object Notation(JavaScript对象表示法)

JSON是存储和交换文本信息的语法。类似XML

JSONXML更小、更快、更易解析

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模块的序列化和反序列化分别是dumpsloads

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)

......

原文地址:https://www.cnblogs.com/reyinever/p/8613568.html