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学习之编写查询ip程序
Feb 27 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
Python的语言类型(详解)
Jun 24 Python
python networkx 根据图的权重画图实现
Jul 10 Python
Python3视频转字符动画的实例代码
Aug 29 Python
python随机模块random使用方法详解
Feb 14 Python
Python批量启动多线程代码实例
Feb 18 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Python工程师必考的6个经典面试题
Jun 28 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
python实现简单倒计时功能
Apr 21 Python
Python中re模块的元字符使用小结
Apr 07 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
软件部经理岗位职责范本
2014/02/25 职场文书
建筑工程专业大学生求职信
2014/04/23 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
Spring中的@Transactional的工作原理
2022/06/05 Java/Android