json Python · 常用模块
`json` 模块用于处理 JSON 格式的数据。JSON 是一种文本格式,常用于数据交换(比如网站接口返回的数据)。`json` 模块可以把 Python 对象转成 JSON 字符串,也可以把 JSON 字符串转回 Python 对象。就像一个翻译官,在 Python 语言和 JSON 语言之间互译。记的话就记翻译官,人中痒痒的翻译官。
怎么用
import json json.dumps(python对象) # Python → JSON 字符串 json.loads(json字符串) # JSON 字符串 → Python
小例子
import json
# Python 字典转 JSON 字符串
数据 = {"名字": "小明", "年龄": 18, "爱好": ["篮球", "游戏"]}
json字符串 = json.dumps(数据, ensure_ascii=False, indent=2)
print(json字符串)
# JSON 字符串转 Python 字典
解析后 = json.loads(json字符串)
print(解析后["名字"])
运行结果
{
"名字": "小明",
"年龄": 18,
"爱好": ["篮球", "游戏"]
}
小明对比:手动处理 JSON 字符串非常麻烦
# 需要自己写解析器,或者用字符串操作,容易出错 用 `json` 模块可以安全地转换。
常见使用场景
1. 读取配置文件:
import json
with open("配置.json", "r", encoding="utf-8") as f:
配置 = json.load(f)
print(配置)
2. 调用 API 接口后解析返回数据:
import json
import requests
响应 = requests.get("https://api.example.com/data")
数据 = json.loads(响应.text)
3. 保存数据到文件:
with open("数据.json", "w", encoding="utf-8") as f:
json.dump(数据, f, ensure_ascii=False, indent=2)
提醒:- `dumps` 和 `loads` 后面的 `s` 表示字符串(string),`dump` 和 `load` 直接处理文件。 - `ensure_ascii=False` 可以输出中文而不是 Unicode 转义字符。 - JSON 中 `null` 对应 Python 的 `None`,`true` 对应 `True`,`false` 对应 `False`。 - Python 的 `json.dumps` 无法直接序列化 `datetime`、`set` 等类型,需要自定义转换。
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条