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

时间:2022-11-12 15:02:36

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)

编码字典

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

示例结果:

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

编码列表

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

示例结果:

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

编码

?
1
2
3
4
import json
s = 'python'
j = json.dumps(s)
print(j)

示例结果:

"python"

格式化输出json

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

示例结果:

?
1
2
3
4
5
6
7
8
9
10
[
  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) 比如我们用来解码上个示例的数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import json
jsondata = '''
[
  1,
  "python ",
  {
    "one": 1,
    "three": 3,
    "two": 2
  },
  true
]
'''
j = json.loads(jsondata)
print(type(j))
print(j)

示例结果:

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

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

总结

以上所述是小编给大家介绍的python3内置模块之json编解码方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://juejin.im/post/5cefe386e51d4510774a87f7