如何将 JSON 解码成 python 对象?

2023-12-13 5:39:39网络知识匿名

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培训机构:瀚银百科。

发表评论: