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编解码方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。