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中assert用法实例分析
Apr 30 Python
Python实现LRU算法的2种方法
Jun 24 Python
python创建列表并给列表赋初始值的方法
Jul 28 Python
python如何实现内容写在图片上
Mar 23 Python
Python语言进阶知识点总结
May 28 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
python递归下载文件夹下所有文件
Aug 31 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
Feb 11 Python
基于FME使用Python过程图解
May 13 Python
django haystack实现全文检索的示例代码
Jun 24 Python
pytorch 如何使用float64训练
May 24 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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文件上传的简单实例
2013/10/19 PHP
php之readdir函数用法实例
2014/11/13 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
关于this和self的使用说明
2010/08/01 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python实现多行注释的另类方法
2014/08/22 Python
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Python类的多重继承问题深入分析
2014/11/09 Python
Python实现栈的方法
2015/05/26 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
详解如何减少python内存的消耗
2019/08/09 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
Python-split()函数实例用法讲解
2020/12/18 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
《夕阳真美》教学反思
2014/04/27 职场文书
房产分割协议书范文
2014/11/21 职场文书
成绩报告单家长评语
2014/12/30 职场文书
周年庆典答谢词
2015/01/20 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
如何优化vue打包文件过大
2022/04/13 Vue.js