Python3 JSON编码解码方法详解
作者:桂木 发布时间:2023-10-12 15:46:43
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,在接口数据开发和传输中非常常用。
Python3中我们利用内置模块json解码和编码JSON对象。json模块提供了四个功能:dumps、dump、loads、load
dumps 把数据类型转换成字符串
dump 把数据类型转换成字符串并存储在文件中
loads 把字符串转换成数据类型
load 把文件打开从字符串转换成数据类型
dumps编码
我们利用 dumps 将Python对象编码为 JSON对象 ,当然 dumps 只完成了序列化为str,而 dump 必须传文件描述符,将序列化的str保存到文件中。
编码字典
import json
odata = {'www': 1, 'python': 2, 'Python3': 3}
jdata = json.dumps(odata)
print(jdata)
编码列表示例结果:
{"www": 1, "python": 2, "Python3": 3}
import json
ldata = [100, 'Python2', {'www': 1, 'python': 2, 'Python3': 3}]
jdata = json.dumps(ldata)
print(jdata)
示例结果:
[100, "Python3", {"www": 1, "python": 2, "Python3": 3}]
编码字符串
import json
sdata = 'Python3'
jdata = json.dumps(sdata)
print(jdata)
示例结果:
"Python3"
格式化输出JSON
将下面的数组,转化为标准的json格式
参数解析:
import json
ldata = ['Python3', 100, {'www': 1, 'python': 2, 'Python3': 3}, True]
jdata = json.dumps(ldata, sort_keys=True, indent=4)
print(jdata)
示例结果:
[
"Python3",
100,
{
"Python3": 3,
"python": 2,
"www": 1
},
true
]
sort_keys=True 那么字典的输出会以键的顺序排序
indent=4 表示缩进为4,如果 indent 是一个非负整数或者字符串,那么 JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。
转换关系对照表
下面为Python原始类型向JSON对象的转化对照表:
1 | 1 |
1dict | 1object |
1list, tuple | 1array |
1str, unicode | 1string |
1int, long, float | 1number |
1True | 1true |
1False | 1false |
1None | 1null |
loads解码
我们利用 loads 用于解码 JSON对象 。解码结果即与之对应的 Python对象 类型。当然 loads 只完成了反序列化, load 只接收文件描述符,完成读取文件和反序列化。
比如我们用来解码上个示例的数据
import json
jsondata = '''
[
"Python3",
100,
{
"Python3": 3,
"python": 2,
"www": 1
},
true
]
'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)
可以看到我们成功对上个例子中的JSON对象进行了解码,并且最终的解码结果为Python列表对象类型,符合Python对象JSON对象对照表的结果。
示例结果:
<class 'list'>
['Python3', 100, {'Python3': 3, 'python': 2, 'www': 1}, True]
总结
Python3中的json解析和编码模块json使用起来非常简单, 功能也非常齐全,完全能够满足我们日常的需求。
来源:https://www.cnblogs.com/keima/p/11474506.html
猜你喜欢
- 一、oracle oracle服务器有Oracle instace 和Oracle database instance有memory str
- 1、合并列表(extend)跟元组一样,用加号(+)将两个列表加起来即可实现合并:In [1]: x=list(range(1, 13, 2
- python脚本执行的3种方法:(找到自己能够使用的方法,能用的方法就是好方法)方法一:交互模式直接执行语句交互模式下直接编写执行 Pyth
- 用下面代码可实现:<%Dim writeDim fileSysObj, tf, readrea
- 今天我们来学习字符串数据类型相关知识,将讨论如何声明字符串数据类型,字符串数据类型与 ASCII 表的关系,字符串数据类型的属性,以及一些重
- 前言简单学习过网络爬虫,只是之前都是照着书上做并发,大概能理解,却还是无法自己用到自己项目中,这里自己研究实现一个网页嗅探HTML5播放控件
- 前言最近做了一个爬取妹子套图的小功能,小伙伴们似乎很有兴趣,为了还特意组建了一个Python兴趣学习小组,来一起学习。十个python九个爬
- 本文实例讲述了PHP实现网页内容html标签补全和过滤的方法。分享给大家供大家参考,具体如下:如果你的网页内容的html标签显示不全,有些表
- 1. 区分读锁定 和 写 锁定。 如果每次都使用 写锁定,那么连多个进程读取一个文件也要排队,这样的效率肯定不行。 2. 区分 阻塞 与 非
- 如何显示数据库中的图片和超级链接?代码见下:<% set conn=server.creatobject(&quo
- 安装Python1.下载适合系统版本的Python先到网址(http://www.python.org/getit/)下载适合自己windo
- aspx: <div id="selDiv" style=" z-index:100; visibili
- 本文实例为大家分享了python文件写入write()的操作的具体代码,供大家参考,具体内容如下filename = 'pragra
- 1.多选按钮的方法以下为常用的方法:方法描述deselect()清除多选按钮选中选项。flash()在激活状态颜色和正常颜色之间闪烁几次多选
- 执行表扫描操作之前,将调用info()函数,以便为优化程序提供额外信息。优化程序所需的信息不是通过返回值给定的,你需填充存储引擎类的特定属性
- 变量不需要声明Python的变量不需要声明,你可以直接输入:>>>a = 10那么你的内存里就有了一个变量a, 它的值是1
- Python类的继承在OOP(ObjectOrientedProgramming)程序设计中,当我们定义一个class的时候,可以从某个现有
- <?php $monthoneday=date("Ym")."01"; $oneweekday
- 先来看看基本的定义:channel是Go语言中的一个核心类型,可以把它看成管道。并发核心单元通过它就可以发送或者接收数据进行通讯,这在一定程
- 在开发django项目时,启动开发服务器的命令为:python manager.py runserver [port]其中,[port]选项