JSON 转 Python 工具

转换器

从样例 JSON 自动生成 Python dataclass 或 TypedDict,支持 Pydantic 模型与可选字段注解,适合对接 API 与 FastAPI 路由模型定义,适合配置转换、数据清洗与格式对齐,支持批量处理,浏览器本地运行,免费且无广告。

输入
输出
from typing import List, Optional, Any
from dataclasses import dataclass

@dataclass
class Profile:
    age: int
    city: str

@dataclass
class RootObject:
    id: int
    name: str
    active: bool
    score: float
    tags: List[str]
    profile: Profile

关于 JSON 转 Python 工具

JSON 转 Python 代码工具在浏览器本地解析样例 JSON 并自动生成 Python 类型定义。支持输出 dataclass(Python 3.7+)或 TypedDict(Python 3.8+)两种形式,字段名自动转为 snake_case 命名风格,嵌套对象拆分为独立的类定义,数组推断为 List 泛型,布尔值映射为 bool,null 值标记为 Optional。生成的代码可直接粘贴到 py 文件中使用,配合 mypy 或 pyright 进行静态类型检查,适用于 FastAPI 接口模型和 Pydantic schema 定义。生成后建议再核对可选字段与嵌套命名,自动推断对空值的处理未必符合业务预期;把定义交给静态检查工具跑一遍,能提前发现类型不一致。若想与 FastAPI/Pydantic 深度集成,可复制 dataclass 后再补上 Field 约束(如必填、默认值),让请求体验收更严谨;对含极深嵌套或大量可空字段的接口,建议先生成一个最小样例再生成,避免输出冗长且难维护。

使用方法

  1. 打开 JSON 转 Python 工具 工具页面
  2. 根据需求输入或粘贴数据到输入区域
  3. 查看实时处理结果,使用复制按钮获取输出

使用场景

  • 类型化 API 响应 — 把接口 JSON 转成 dataclass,配合 httpx/pydantic 做类型校验。
  • 配置文件建模 — 从 JSON/YAML 配置样例生成 dataclass,用于 typed-settings 等库。
  • FastAPI 请求体 — 快速生成 Pydantic 兼容的 dataclass 作为请求体模型。
  • 数据管道建模 — 为 ETL 管道的输入输出快速建模,提高代码可维护性。
  • mypy 类型检查 — 生成带类型注解的类定义,接入 mypy/pyright 做静态校验。

常见问题

dataclass 和 TypedDict 有什么区别?

dataclass 是运行时可实例化的类,TypedDict 仅用于类型注解(dict 的结构化版本),不会在运行时强制校验。按需选择:需要实例方法用 dataclass,只要类型提示用 TypedDict。

字段名如何转换?

JSON 的 camelCase 或 kebab-case 字段名会自动转为 Python 风格的 snake_case,符合 PEP 8 命名规范。

需要哪些依赖?

dataclass 模式需要 Python 3.7+(标准库),TypedDict 需要 typing_extensions(3.8 以下)或 Python 3.8+ 内置。两者都不依赖第三方框架。

null 字段如何处理?

值为 null 会标记为 Optional[...],表示该字段可能为 None。若某些字段业务上永远非空,可在生成后把类型收紧以加强类型检查。

生成定义可以用于 Pydantic 吗?

可以。把生成的 dataclass 定义稍作调整即可融入 Pydantic 模型,或直接用其字段类型作为参考,让 FastAPI 请求体获得更强校验。

广告

评论与讨论

还没有评论,来抢沙发吧!

评论仅保存在你的浏览器本地,切换设备后不可见。配置 Giscus 后可支持云端评论。