简介
JSON(JavaScript Object Notation)是一种基于 ECMAScript 子集的轻量级数据交换格式。 JSON 采用完全与语言无关的文本格式。这些特性使JSON成为一种理想的数据交换格式,易于人类读写,也易于机器解析和生成。在接口数据开发和传输中非常常用。
Python3中我们利用内置模块json解码和编码JSON对象。
json模块提供了四个功能:dumps、dump、loads、load
dumps 把数据类型转换成字符串
dump 把数据类型转换成字符串并存储在文件中
loads 把字符串转换成数据类型
load 把文件打开从字符串转换成数据类型
dumps编码
我们使用转储将 Python 对象编码为 JSON 对象。当然dumps只是完成序列化成str,而dump必须传递一个文件描述符才能将序列化后的str保存到文件中。
编码字典
import json
odata = {'www': 1, 'pythontab.com': 2, 'Python3': 3}
jdata = json.dumps(odata)
print(jdata)
示例结果:
{"www": 1, "pythontab.com": 2, "Python3": 3}
编码列表
import json
ldata = [100, 'Python2', {'www': 1, 'pythontab.com': 2, 'Python3': 3}]
jdata = json.dumps(ldata)
print(jdata)
示例结果:
[100, "Python3", {"www": 1, "pythontab.com": 2, "Python3": 3}]
编码字符串
import json
sdata = 'Python3'
jdata = json.dumps(sdata)
print(jdata)
示例结果:
"Python3"
格式化输出JSON
将下面的数组,转化为标准的json格式
import json
ldata = ['Python3', 100, {'www': 1, 'pythontab.com': 2, 'Python3': 3}, True]
jdata = json.dumps(ldata, sort_keys=True, indent=4)
print(jdata)
示例结果:
[
"Python3",
100,
{
"Python3": 3,
"pythontab.com": 2,
"www": 1
},
true
]
参数解析:
sort_keys=True 那么字典的输出会以键的顺序排序
indent=4表示缩进为4,如果indent为非负整数或字符串,则JSON数组元素和对象成员将被美化并输出为该值指定的缩进级别。
转换关系对照表
下面为Python原始类型向JSON对象的转化对照表:
loads解码
我们利用负载来解码 JSON 对象。解码后的结果就是对应的Python对象类型。当然,loads只完成反序列化,load只接收文件描述符,完成读取文件和反序列化。
比如我们用来解码上个示例的数据
import json
jsondata = '''
[
"Python3",
100,
{
"Python3": 3,
"pythontab.com": 2,
"www": 1
},
true
]
'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)
示例结果
<class 'list'>
['Python3', 100, {'Python3': 3, 'pythontab.com': 2, 'www': 1}, True]
可以看出,我们在前面的例子中成功解码了JSON对象,最终的解码结果是一个Python列表对象类型,符合Python对象JSON对象对照表的结果。
总结
Python3中的json解析编码模块json使用起来非常简单,功能也很齐全,完全可以满足我们日常的需求。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python中的复数函数是什么?08/14
- ♥ python异常处理的流程是什么?10/14
- ♥ Python模块学习 ---- zipfile模块01/07
- ♥ 转行学习java或python11/17
- ♥ 一个函数如何在python中返回多个结果?01/02
- ♥ Python 和 Shell 脚本之间的交互11/24
内容反馈