Python3 json模块之编码解码方法讲解
作者:WDC 发布时间:2021-07-15 17:29:15
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, 'jb51.net': 2, 'Python3': 3}
jdata = json.dumps(odata)
print(jdata)
示例结果:
{"www": 1, "jb51.net": 2, "Python3": 3}
编码列表
import json
ldata = [100, 'Python2', {'www': 1, 'jb51.net': 2, 'Python3': 3}]
jdata = json.dumps(ldata)
print(jdata)
示例结果:
[100, "Python3", {"www": 1, "jb51.net": 2, "Python3": 3}]
编码字符串
import json
sdata = 'Python3'
jdata = json.dumps(sdata)
print(jdata)
示例结果:
"Python3"
格式化输出JSON
将下面的数组,转化为标准的json格式
import json
ldata = ['Python3', 100, {'www': 1, 'jb51.net': 2, 'Python3': 3}, True]
jdata = json.dumps(ldata, sort_keys=True, indent=4)
print(jdata)
示例结果:
[
"Python3",
100,
{
"Python3": 3,
"jb51.net": 2,
"www": 1
},
true
]
参数解析:
sort_keys=True
那么字典的输出会以键的顺序排序
indent=4
表示缩进为4,如果 indent 是一个非负整数或者字符串,那么 JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。
转换关系对照表
下面为Python原始类型向JSON对象的转化对照表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
loads解码
我们利用 loads 用于解码 JSON对象 。解码结果即与之对应的 Python对象 类型。当然 loads 只完成了反序列化, load 只接收文件描述符,完成读取文件和反序列化。
比如我们用来解码上个示例的数据
import json
jsondata = '''
[
"Python3",
100,
{
"Python3": 3,
"jb51.net": 2,
"www": 1
},
true
]
'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)
示例结果:
<class 'list'>
['Python3', 100, {'Python3': 3, 'jb51.net': 2, 'www': 1}, True]
可以看到我们成功对上个例子中的JSON对象进行了解码,并且最终的解码结果为Python列表对象类型,符合Python对象JSON对象对照表的结果。
总结
Python3中的json解析和编码模块json使用起来非常简单, 功能也非常齐全,完全能够满足我们日常的需求。更多关于Python json模块解析和编码的文章请点击下面的相关链接
猜你喜欢
- python读取Excel表格文件,例如获取这个文件的数据python读取Excel表格文件,需要如下步骤:1、安装Excel读取数据的库-
- 1、shutdown normal 正常方式关闭数据库。 2、shutdown imme
- 最近因项目需要用ACCESS做数据库开发WEB项目看论坛上还许多人问及ACCESS被注入的安全问题许多人解决的方法仍然是用Replace替换
- (5)SELECT (5-2) DISTINCT(5-3)TOP(<top_specification>)(5-1) <s
- number(<p>,<s>)精度p取值范围1~38有效位s取值范围-84~127最高整数位数=p-ss正数,小数点
- javascript曾一度被认为是玩具型的语言,因为它太容易上手,而且,javascript曾一度担任为web站点“打杂”的职责。直到Aja
- 我们一般在调试程序的时候,有些操作会莫名地失败,又没有错误消息提示,特别是在执行数据库操作的时候,明明执行过去了,可就是数据库里没有记录变动
- 内容摘要:当讨论Request对象内容时,要研究的集合之一就是ServerVariables集合。这个集合包含了两种值的结合体,一种是随同页
- 函数名称:ReplaceHTML参数:@Textstr作用:去掉 @Textstr 内的HTML代码备注:需要给数据库访问者master.s
- 首先来看,ASP读取ACCESS数据库。代码如下:<% @language="VBScript"&nbs
- 代码如下:'返回指定文件夹中文件的数目,传入值为被检测文件夹的硬盘绝对路径 function CountFile
- !important;严格来说,!important;应该不能算作是一种hack技术,被应用了!important;的属性将在IE中无效,对
- 本文为大家分享了python数据分析数据标准化及离散化的具体内容,供大家参考,具体内容如下标准化1、离差标准化是对原始数据的线性变换,使结果
- -------------- 函数检索 --------------trim函数: trim() lTrim() rTrim()校验字符串是
- 这个收藏本站、设为首页代码相信每个网站都会用到,这么常用的代码,网络上流行的一般是很多年前的代码版本,只有兼容IE,对其它浏览器没有考虑,下
- SPAN 和 DIV 的区别在于,DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN
- list解析先看下面的例子,这个例子是想得到1到9的每个整数的平方,并且将结果放在list中打印出来>>> power2
- 一、简介 多线程编程技术可以实现代码并行性,优化处理能力,同时功能的
- 比如:Set Connobject=nothing nothing如同英文单词字面意思,没有,没有那个,没有这个,没有东西 Set Conn
- Windows 10 x64macOS Sierra 10.12.4Python 2.7准备好装哔~了么,来吧,做个真正意义上的绿色小软件W