欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python3内置模块之json编解码方法小结【推荐】

程序员文章站 2023-11-26 15:24:16
python3中我们利用内置模块 json 解码和编码 json对象 ,json(javascript object notation)是指定 rfc 7159(废弃了rf...

python3中我们利用内置模块 json 解码和编码 json对象 ,json(javascript object notation)是指定 rfc 7159(废弃了rfc 4627)和 ecma-404是一种轻量级数据交换格式,受 javascript对象文字语法的启发 (虽然它不是javascript 1的严格子集)。下面为python对象-->json对象的对照关系表。

dumps编码

我们利用 dumps 将python对象编码为 json对象 ,当然 dumps 只完成了序列化为str,而 dump 必须传文件描述符,将序列化的str保存到文件中,它们的函数定义为 dumps(obj, *, skipkeys=false, ensure_ascii=true, check_circular=true, allow_nan=true, cls=none, indent=none, separators=none, default=none, sort_keys=false, **kw) dump(obj, fp, *, skipkeys=false, ensure_ascii=true, check_circular=true, allow_nan=true, cls=none, indent=none, separators=none, default=none, sort_keys=false, **kw)

编码字典

import json 
d = {'one': 1, 'two': 2, 'three': 3}
j = json.dumps(d)
print(j)

示例结果:

{"one": 1, "two": 2, "three": 3}

编码列表

import json 
l = [1, 'python ', {'one': 1, 'two': 2, 'three': 3}, '']
j = json.dumps(l)
print(j)

示例结果:

[1, "python ", {"one": 1, "two": 2, "three": 3}, ""]

编码

import json 
s = 'python'
j = json.dumps(s)
print(j)

示例结果:

"python"

格式化输出json

import json 
l = [1, 'python ', {'one': 1, 'two': 2, 'three': 3}, true]
j = json.dumps(l, sort_keys=true, indent=4)
print(j)

示例结果:

[
  1,
  "python ",
  {
    "one": 1,
    "three": 3,
    "two": 2
  },
  true
]

loads解码

我们利用 loads 用于解码 json对象 。解码结果即与之对应的 python对象 类型。当然 loads 只完成了反序列化, load 只接收文件描述符,完成读取文件和反序列化。它们的函数定义为 loads(s, *, encoding=none, cls=none, object_hook=none, parse_float=none, parse_int=none, parse_constant=none, object_pairs_hook=none, **kw) load(fp, *, cls=none, object_hook=none, parse_float=none, parse_int=none, parse_constant=none, object_pairs_hook=none, **kw) 比如我们用来解码上个示例的数据

import json 
jsondata = '''
[
  1,
  "python ",
  {
    "one": 1,
    "three": 3,
    "two": 2
  },
  true
]
'''
j = json.loads(jsondata)
print(type(j))
print(j)

示例结果:

<class 'list'>
[1, 'python ', {'one': 1, 'three': 3, 'two': 2}, true]

可以看到我们成功对上个例子中的json对象进行了解码,并且最终的解码结果为python列表对象类型,符合python对象-json对象对照表的结果。

总结

以上所述是小编给大家介绍的python3内置模块之json编解码方法小结,希望对大家有所帮助