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