JSON 转 Python 类

JSON转PythonDataclass生成Python类型注解

本地运行,数据不上传服务器

JSON 输入134 字符 · 1 行
Python dataclass0 字符 · 1 行

使用说明

写 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:不会,生成在浏览器本地完成。