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生成随机数的方法
Jan 14 Python
python k-近邻算法实例分享
Jun 11 Python
Python使用xlrd读取Excel格式文件的方法
Mar 10 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
Jan 20 Python
Python中list初始化方法示例
Sep 18 Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
Django框架 Pagination分页实现代码实例
Sep 04 Python
python属于解释型语言么
Jun 15 Python
Python用access判断文件是否被占用的实例方法
Dec 17 Python
python里glob模块知识点总结
Jan 05 Python
Python 生成短8位唯一id实战教程
Jan 13 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
smarty实现多级分类的方法
2014/12/05 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
js中的面向对象入门
2017/03/06 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
如何在django中运行scrapy框架
2020/04/22 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
表彰先进的通报
2014/01/31 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
2014年教研工作总结
2014/12/06 职场文书
后勤个人工作总结
2015/02/28 职场文书
小学生安全教育主题班会
2015/08/12 职场文书