百科狗-知识改变命运!
--

如何将 JSON 解码成 python 对象?

乐乐1年前 (2023-11-21)阅读数 23#技术干货
文章标签对象

JSON解码为python的对照表

要完成这个功能,也先要看下json解码为python对象的对照表

JSONPython

Objectdict

Arraylist

Stringstr

number(int)int

number(real)float

TrueTrue

FalseFalse

如何将 JSON 解码成 python 对象?

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培训机构:开发教育。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)