Python3 JSON模块:dumps、loads编码解码全解析
本文详解Python3中json模块的四个核心方法:dumps、dump、loads和load。通过字典、列表及字符串的编码示例,展示如何将Python对象转换为JSON字符串并保存至文件;同时演示利用loads进行反序列化的过程。重点解析sort_keys与indent参数在格式化输出中的应用,并附Python类型与JSON类型的完整转换对照表,帮助开发者高效处理数据交换。
JSON格式概述与Python处理模块
JSON(JavaScript Object Notation)是一种基于ECMAScript子集的轻量级数据交换格式。它采用独立于编程语言的纯文本形式,具备人类易读易写、机器易解析生成的特点,因此在接口数据开发与传输场景中应用极为广泛。
在Python3中,处理JSON对象主要依赖内置的json模块。该模块提供了四个核心功能函数:dumps、dump、loads以及load,分别用于不同的序列化与反序列化场景。
dumps方法的作用是将Python数据类型转换为JSON格式的字符串。
dump方法同样将数据类型转换为字符串,但其关键区别在于必须传入文件描述符,从而将序列化后的字符串直接保存到文件中。
loads方法负责将JSON格式的字符串转换回Python的数据类型。
load方法用于打开文件,从文件中读取字符串并将其转换为对应的Python数据类型。
dumps编码方法与示例
dumps编码操作
使用dumps可将Python对象编码为JSON字符串。需要注意的是,dumps仅完成序列化为字符串的过程;若需将结果持久化,必须使用dump并传入文件描述符。
编码字典示例
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格式化输出
以下示例演示如何将数组转化为标准的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类型转换对照
类型转换关系对照表
以下是Python原始数据类型向JSON对象转换的完整对照表:
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









