如何将 JSON 解码成 python 对象?

发布时间:2022-04-01 10:03:08 人气:102 作者:多测师

  JSON 解码为 python 的对照表

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

  JSON Python

  Object dict

  Array list

  String str

  number (int) int

  number (real) float

  True True

  False False

  Null None

  编码对照表和解码对照表并不是一一对应的,因此如果一个 python对象 先编码成 JSON,再转码回来后得到的对象可就不一定完全相等了。

  json.loads()

  这个方法的作用就是将参数 s 按照上面的对照表反序列化为一个 python 对象。参数 s 可以是 str ,byte 或者byteArray 格式, 但必须要包含 JSON 文本才可以)。具体函数声明如下:

如何将 JSON 解码成 python 对象?

  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 。

  >>> import json

  >>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')

  ['foo', {'bar': ['baz', None, 1.0, 2]}]

  >>> json.loads('"\\"foo\\bar"')

  '"foo\x08ar'

  >>> import decimal

  >>> 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 方法相同。来看一个例子。

  >>> import json

  >>> from io import StringIO

  >>> io = StringIO('["streaming API"]')

  >>> json.load(io)

  ['streaming API']

  以上内容为大家介绍了如何将 JSON 解码成 python 对象?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线