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实现自动登录人人网并采集信息的方法
Jun 28 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
Python 一句话生成字母表的方法
Jan 02 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
np.dot()函数的用法详解
Jan 17 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
Python基于pandas爬取网页表格数据
May 11 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
Django数据库迁移常见使用方法
Nov 12 Python
python爬虫快速响应服务器的做法
Nov 24 Python
Pytorch使用shuffle打乱数据的操作
May 20 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中array_merge与array+array的区别
2013/06/21 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python从MP3文件获取id3的方法
2015/06/15 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
公民代理授权委托书
2014/09/24 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
结婚幸福感言
2015/08/01 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers