JSON 转 Python 类
本地运行,数据不上传服务器
使用说明
写 Python 处理接口数据时,把 JSON 直接当 dict 用没有类型提示,IDE 补全不友好,字段名写错要到运行时才发现;用 Pydantic 又觉得重,只想要一个轻量的 dataclass 定义;数据清洗脚本里字段多,手写 dataclass 一遍很繁琐。这些场景用一个能从 JSON 生成 dataclass 的工具能省不少时间。 这个工具把顶层为对象的 JSON 转成 Python dataclass。字段类型根据值自动推断,list[T] 和 dict[str, Any] 也能生成。命名策略支持 snake_case、camelCase、PascalCase 或保留原始命名。 嵌套对象可以递归生成独立 dataclass,也可以只用 dict 表示。列表和对象的默认值用 default_factory 处理,避免可变默认值陷阱。还可以选择生成 from_dict 转换方法,方便从字典构造对象。结果可复制或下载 .py 文件。
核心功能
- ✓根据 JSON 对象生成 Python dataclass
- ✓自动推断字段类型,生成类型注解
- ✓支持 list[T]、dict[str, Any] 和基础类型
- ✓递归生成嵌套 dataclass
- ✓命名策略支持 snake_case、camelCase、PascalCase、保留原始
- ✓使用 default_factory 处理列表和对象默认值
- ✓可选生成 from_dict 转换方法
- ✓结果可复制或下载 .py 文件
使用教程
根据接口响应创建数据模型:把接口返回的 JSON 粘进来,根类名填成业务名,直接得到 dataclass 定义,不用手写字段和类型。 生成嵌套 dataclass:多层 JSON 开启嵌套类生成,内部结构会拆成独立 dataclass,import 时更清晰。 为数据处理脚本准备类型:pandas 或 csv 处理前先定义 dataclass,字段名写错时 IDE 会提示。 对比命名策略:从 JSON 的 snake_case 转成 camelCase 时,切到对应命名策略,工具自动生成符合 PEP 8 的字段名。 生成 from_dict 方法:需要从字典构造对象时勾选该选项,输出可直接使用的转换方法。
常见问题
Q:支持 Pydantic 吗?
A:不生成 Pydantic 模型,只生成标准库的 dataclass,需要 Pydantic 时手动改。
Q:默认值代表字段可选吗?
A:不代表。默认值来自当前 JSON 样例,只作为类型提示,字段真实可选性需要按业务判断。
Q:顶层是数组的 JSON 能转吗?
A:不能,顶层必须是对象;顶层为数组时可以先包一层 {"items": [...]}。
Q:会生成 __init__ 吗?
A:dataclass 装饰器会自动生成 __init__,不需要手写。
Q:支持 Python 3.8 及以下版本吗?
A:list[T] 语法需要 Python 3.9+,低版本需要手动改成 List[T]。
Q:数据会上传服务器吗?
A:不会,生成在浏览器本地完成。