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