JSON解碼為python的對照表
要完成這個功能,也先要看下json解碼為python對象的對照表
JSONPython
Objectdict
Arraylist
Stringstr
number(int)int
number(real)float
TrueTrue
FalseFalse
NullNone
編碼對照表和解碼對照表并不是一一對應的,因此如果一個python對象先編碼成JSON,再轉碼回來后得到的對象可就不一定完全相等了。
json.loads()
這個方法的作用就是將參數s按照上面的對照表反序列化為一個python對象。參數s可以是str,byte或者byteArray格式,但必須要包含JSON文本才可以)。具體函數聲明如下:
json.loads(s,*,encoding=None,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)
下面就來一一了解下一些常用參數的意義
s就是要解碼的python字符串
encoding指定編碼格式
parse_float,默認情況下相當于float(num_str)。如果設置為其他值,將會把一個JSON字符串按照float解碼調用,
parse_int,默認情況下相當于int(num_str),如果指定,將把每個JSON字符串按照int解碼調用
來看下面的例子,其中最后一行就指定了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()
先來看函數聲明
json.load(fp,*,cls=None,object_hook=None,parse_float=None,parse_int=None,parse_constant=None,object_pairs_hook=None,**kw)
作用是將fp文件流反序列化為python對象,其中的參數意義和loads方法相同。來看一個例子。
>>>importjson
>>>fromioimportStringIO
>>>io=StringIO('["streamingAPI"]')
>>>json.load(io)
['streamingAPI']
以上內容為大家介紹了如何將JSON解碼成python對象?,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。