Python处理JSON最常用的是内置json模块,提供loads()将JSON字符串转为Python对象、dumps()将Python对象转为JSON字符串、load()/dump()直接读写文件,支持中文显示、缩进格式及自定义类型序列化。
Python 中处理 JSON 数据最常用、最直接的方式就是使用内置的 json 模块。它轻量、稳定、无需额外安装,能高效完成字符串与 Python 对象之间的双向转换。
当你从网络请求(如 requests.get().text)、文件读取或 API 返回中拿到一段 JSON 格式的字符串时,用 loads() 就能把它变成字典、列表等原生 Python 类型。
json.JSONDecodeError,建议加 try-except 处理适合将字典、列表等结构序列化为标准 JSON 字符串,用于发送 HTTP 请求、保存到文件或日志记录。
indent=2 让输出更易读\u4f60\u597d),加参数 ensure_ascii=False 可保留原始中文sort_keys=True 按键字母排序,方便比对或调试和字符串版本的区别在于:它们直接操作文件对象,省去手动调用 .read() 或 .write() 的步骤。
json.load(f):从已打开的文件对象中读取并解析 JSONjson.dump(obj, f):把 Python 对象写入已打开的文件对象'r' 或 'w' 模式打开,写入时推荐加 encoding='utf-8'
json 模块默认只支持 int/float/str/list/dict/None/bool 这几种类型。遇到 datetime、Decimal、自定义类等,需扩展处理:
default 参数告诉 dumps() 遇到未知类型怎么转(例如把 datetime 转成 ISO 格式字符串)ob
ject_hook 参数让 loads() 在解析完字典后自动做二次处理(例如把特定字段转成 datetime 对象)vars() 或 __dict__ 提取属性再序列化,反向则用类构造器重建实例