Python3内置模块之json编解码方法小结【推荐】
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编解码方法小结,希望对大家有所帮助