JSON 转 Python

从 JSON 生成 Python dataclass、Pydantic 模型或 TypedDict

JSON 输入

选项

模型

Python 输出

粘贴 JSON 或加载示例以生成 Python 代码。

JSON 转 Python 会生成什么

JSON 转 Python 会将 API 响应或任意 JSON 示例转换为 Python 类型定义。Dataclass 模式会生成 @dataclass 类和一个 from_dict 类方法,因为 Root(**data) 无法构建嵌套的 dataclass,也无法映射重命名的键。Pydantic v2 模式会生成 BaseModel 类,并仅在名称发生变化时添加 Field(alias="original-key") 和 populate_by_name。TypedDict 模式保留原样的 JSON 键,当某个键不是有效标识符时改用函数式 TypedDict("Name", {...}) 语法。

使用方法
  1. 1.粘贴 JSON、上传或拖放 .json 文件,或加载一个示例。
  2. 2.设置根类型名称。如果 JSON 根是对象数组,此名称用于元素类型,并会添加 RootList 作为别名。
  3. 3.选择 Dataclass、Pydantic v2 或 TypedDict,并决定属性是否使用 snake_case。
  4. 4.阅读输出下方的提示,然后复制代码或下载 models.py。
类型如何推断
  • •会检查数组中的每个元素,而不只是第一个,同一数组中的对象会被合并。
  • •部分对象中缺少的键为可选;有时为 null 的键为可为 null。两者分开处理。
  • •同一位置出现 1 和 2.5 时会放宽为小数;其他混合情况会给出提示。
  • •空数组和始终为 null 的值没有类型依据,因此使用通用类型,并附提示说明原因。
  • •类型映射:string → str,整数 → int,小数 → float,布尔值 → bool,数组 → list[T],对象 → 嵌套类,未知 → Any,出现 null → T | None。
  • •保留字会变为 class_,以数字开头的键会加上 field_ 前缀,名称冲突时会加上 _2。
限制与隐私

示例只反映数据某一次的样子,而不是完整的 API 契约。在依赖这些代码之前,请检查可选字段、通用类型和数字宽度。输入限制为 5 MB 和 256 层嵌套;从 2 MB 起,需点击“生成”按钮才会生成。所有处理都在您的浏览器中运行,JSON 不会被上传。生成的代码使用 Python 3.10+ 联合类型语法;使用 NotRequired 的 TypedDict 模式需要 Python 3.11 或 typing_extensions。

CodingTool 已正式上线于

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch