Python 处理 JSON 的 4 种姿势:从 loads 到 pandas
2024-12-03
Python 标准库 json 够用,但数据量大或要上 DataFrame 时,选型不同性能差一个数量级。按场景选工具,比背 API 更重要。
1. 标准库 json.loads / dump
默认把 JSON object 转成 dict,array 转成 list;ensure_ascii=False 保留中文。
适合脚本、中小文件、与 Python 类型自然互操作。
import json
data = json.loads('{"name": "Alice", "tags": ["a", "b"]}')2. orjson / ujson 加速
第三方库 C 实现,loads/dumps 更快;orjson 默认输出 bytes,支持 datetime、UUID 等选项(需配置)。
注意与标准库行为差异(如 NaN 处理),迁移时跑一遍测试。
3. pandas.read_json
表格型 JSON 数组直接进 DataFrame;lines=True 读 JSON Lines。
嵌套对象需 json_normalize 展平;orient 参数决定列布局。
import pandas as pd
df = pd.read_json("data.json") # 顶层为 array of objects 时最省事4. pydantic / dataclass 建模
要校验 + 类型:Pydantic model_validate_json 一次完成 parse 与 schema。
适合 API 客户端与服务端,不只是「读进来」而是「读对」。
选型小结
小脚本 → json;性能瓶颈 → orjson;分析表格 → pandas;契约严格 → pydantic。