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 web程序
Sep 11 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
使用Python构造hive insert语句说明
Jun 06 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
详解Django的MVT设计模式
Apr 29 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数字转汉字代码(算法)
2011/10/08 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP实现的简单缓存类
2015/07/29 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
Python中每次处理一个字符的5种方法
2015/05/21 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python配置文件处理的方法教程
2019/08/29 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
pandas数据处理之绘图的实现
2020/06/15 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
客服实习的个人自我鉴定
2013/10/20 职场文书
高中体育教学反思
2014/01/29 职场文书
一月红领巾广播稿
2014/02/11 职场文书
高三高考决心书
2014/03/11 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
公司承诺书怎么写
2014/05/24 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers