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之不要红头文件(2)
Sep 28 Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
Python基于多线程实现抓取数据存入数据库的方法
Jun 22 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
Django集成celery发送异步邮件实例
Dec 17 Python
如何搭建pytorch环境的方法步骤
May 06 Python
Python reduce函数作用及实例解析
May 08 Python
为什么说python更适合树莓派编程
Jul 20 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 Python
Pytorch 实现变量类型转换
May 17 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
php使用正则验证中文
2016/04/06 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
python多重继承新算法C3介绍
2014/09/28 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
python实现井字棋游戏
2020/03/30 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
tensorflow 变长序列存储实例
2020/01/20 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
2020/04/14 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
经典c++面试题三
2015/07/08 面试题
总经理助理工作职责
2014/02/06 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
小学运动会开幕词
2015/01/28 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
课程设计感想范文
2015/08/11 职场文书