1. 什么是 JSON ?
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是轻量级的文本数据交换格式。
JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
JSON 具有自我描述性,更易理解。
JSON 比 XML 更小、更快,更易解析。
JSON 易于人阅读和编写。
python、c++、java、php、go等编程语言都支持 JSON。
这么说吧,现在流行的数据交互格式都是JSON,其独占鳌头,XML比起JSON来说那就少的可怜了。
关于JSON语法,可自行百度,非常简单,很快便可掌握,此处不再赘述。
2. python中对json的支持
(1) python标准库的 json 模块提供了对 json 的支持
[a]. 把字符串转换成 JSON 对象;
[b]. 把 JSON 对象换成字符串。
(2) 常用的接口
json.dumps(obj) 将 JSON 对象转换成字符串
json.loads(obj) 将字符串转换成 JSON 对象
json.dump(obj,file) 将 JSON 对象转换成字符串,并写入到文件中
json.load(file) 读取文件中的字符串,转换成 JSON 对象
(3) python 编码为 JSON 类型转换对应表
| python | JSON |
|---|---|
| dict | object |
| list、tuple | array |
| str | string |
| int,float,int,float,Enums | number |
| True | true |
| False | false |
| None | null |
(4) JSON 解码为 python 类型转换对应表
| JSON | python |
|---|---|
| object | dict |
| array | list |
| string | str |
| number(int) | int |
| number(real) | float |
| true | True |
| false | False |
| null | None |
3. 接口使用
(1) dumps(obj)
将 JSON 对象转换成字符串。
import json
# json对象
jsonObj = {
'num': 101,
'name': 'Zhang'
}
# 将json对象转换为字符串
print(type(json.dumps(jsonObj)))
print(json.dumps(jsonObj))

(2) loads(str)
将字符串转换成 JSON 对象。
import json
string = '{"num": 101, "name": "zhang"}'
print(type(json.loads(string)))
print(json.loads(string))

(3) json.dump(obj,file)
将 JSON 对象转换成字符串,并写入到文件中。
import json
# 运行程序, 发现在当前目录下已经生成了test.json文件,
# 并且已经将自定义的json对象写入到了文件当中
file = open('test.json', 'w')
jsonObj = {'num': 101, 'name': 'Zhang'}
json.dump(jsonObj, file)
file.close()

(4) json.load(file)
将读取文件中的字符串,转换成 JSON 对象。
import json
file = open('test.json')
jsonObj = json.load(file)
print(jsonObj)
print(jsonObj['num'])
print(jsonObj['name'])
file.close()

4. 写在最后
更多基于python的Json接口可参考官网:
https://docs.python.org/3.9/library/json.html











![[2019红帽杯]easyRE1题解](https://img-blog.csdnimg.cn/img_convert/da6342e2299e1a2fe2aa7989043ed58c.jpeg)







