python数据封装json格式数据
最简单的使用方法是:
>>>importsimplejsonasjson
>>>json.dumps(['foo',{'bar':('baz',None,1.0,2)}])
'["foo",{"bar":["baz",null,1.0,2]}]'
>>>print(json.dumps("\"foo\bar"))
"\"foo\bar"
>>>print(json.dumps(u'\u1234'))
"\u1234"
>>>print(json.dumps('\\'))
"\\"
>>>print(json.dumps({"c":0,"b":0,"a":0},sort_keys=True))
{"a":0,"b":0,"c":0}
>>>fromsimplejson.compatimportStringIO
>>>io=StringIO()
>>>json.dump(['streamingAPI'],io)
>>>io.getvalue()
'["streamingAPI"]'
一般情况下:
>>>importsimplejsonasjson
>>>obj=[1,2,3,{'4':5,'6':7}]
>>>json.dumps(obj,separators=(',',':'),sort_keys=True)
'[1,2,3,{"4":5,"6":7}]'
这样得到的json数据不易于查看,所有数据都显示在一行上面。如果我们需要格式更加良好的json数据,我们可以如下使用方法:
>>>importsimplejsonasjson
>>>
>>>s=json.dumps({'4':5,'6':7},sort_keys=True,indent=4)
>>>s
'{\n"4":5,\n"6":7\n}'
>>>print('\n'.join([l.rstrip()forlins.splitlines()]))
{
"4":5,
"6":7
}
>>>
\n不会影响json本身的数据解析,请放心使用。
解析json格式的字符串:
obj=[u'foo',{u'bar':[u'baz',None,1.0,2]}]
json.loads('["foo",{"bar":["baz",null,1.0,2]}]')==obj
True
json.loads('"\\"foo\\bar"')==u'"foo\x08ar'
True
fromStringIOimportStringIO
io=StringIO('["streamingAPI"]')
json.load(io)[0]=='streamingAPI'
True
读取并解析json格式文件
defedit(request):
filepath=os.path.join(os.path.dirname(__file__),'rights.json')
content=open(filepath).read().decode('utf-8')
rights=simplejson.loads(content)
printrights
printrights[0]['manageTotal']
json数据格式为:
[{"manageTotal":"管理"}]
注意:json不支持单引号