JSON解碼為python的對(duì)照表
要完成這個(gè)功能,也先要看下json解碼為python對(duì)象的對(duì)照表
JSONPython
Objectdict
Arraylist
Stringstr
number(int)int
number(real)float
TrueTrue
FalseFalse
NullNone
編碼對(duì)照表和解碼對(duì)照表并不是一一對(duì)應(yīng)的,因此如果一個(gè)python對(duì)象先編碼成JSON,再轉(zhuǎn)碼回來后得到的對(duì)象可就不一定完全相等了。
json.loads()
這個(gè)方法的作用就是將參數(shù)s按照上面的對(duì)照表反序列化為一個(gè)python對(duì)象。參數(shù)s可以是str,byte或者byteArray格式,但必須要包含JSON文本才可以)。具體函數(shù)聲明如下:
json.loads(s,*,encoding=None,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)
下面就來一一了解下一些常用參數(shù)的意義
s就是要解碼的python字符串
encoding指定編碼格式
parse_float,默認(rèn)情況下相當(dāng)于float(num_str)。如果設(shè)置為其他值,將會(huì)把一個(gè)JSON字符串按照float解碼調(diào)用,
parse_int,默認(rèn)情況下相當(dāng)于int(num_str),如果指定,將把每個(gè)JSON字符串按照int解碼調(diào)用
來看下面的例子,其中最后一行就指定了parse_float。
>>>importjson
>>>json.loads('["foo",{"bar":["baz",null,1.0,2]}]')
['foo',{'bar':['baz',None,1.0,2]}]
>>>json.loads('"\\"foo\\bar"')
'"foo\x08ar'
>>>importdecimal
>>>json.loads('1.1',parse_float=decimal.Decimal)
Decimal('1.1')
json.load()
先來看函數(shù)聲明
json.load(fp,*,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)
作用是將fp文件流反序列化為python對(duì)象,其中的參數(shù)意義和loads方法相同。來看一個(gè)例子。
>>>importjson
>>>fromioimportStringIO
>>>io=StringIO('["streamingAPI"]')
>>>json.load(io)
['streamingAPI']
以上內(nèi)容為大家介紹了如何將JSON解碼成python對(duì)象?,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。