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


Posted in Python onDecember 09, 2020

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编解码方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python yield 小结和实例
Apr 25 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
python+selenium实现京东自动登录及秒杀功能
Nov 18 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
python 缺失值处理的方法(Imputation)
Jul 02 Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 Python
如何在python中判断变量的类型
Jul 29 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 Python
在Django中使用MQTT的方法
May 10 Python
一文了解Python并发编程的工程实现方法
May 31 #Python
Python微信操控itchat的方法
May 31 #Python
python基于SMTP协议发送邮件
May 31 #Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 #Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 #Python
基于Python打造账号共享浏览器功能
May 30 #Python
Python实现带下标索引的遍历操作示例
May 30 #Python
You might like
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
img的onload的另类用法
2008/01/10 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
简单的js表格操作
2016/09/24 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
js实现漫天星星效果
2017/01/19 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
在移动端使用vue-router和keep-alive的方法示例
2018/12/02 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
学习python分支结构
2019/05/17 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
应届生法律求职信
2013/10/22 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
2014大学生全国两会学习心得体会
2014/03/13 职场文书
商业项目策划方案
2014/06/05 职场文书
社团活动总结模板
2014/06/30 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
高一地理教学工作总结
2015/08/12 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL