DT Dev Tools

Convertir JSON a Python — Generador de clases

Convierte JSON a dataclasses de Python o modelos Pydantic con type hints, campos snake_case y helpers from_dict/to_dict. Gratis, privado y en tu navegador.

🔒 Se ejecuta completamente en tu navegador — nada se sube

Publicidad

De JSON a clases Python tipadas

Trabajar con diccionarios sin procesar es rápido, hasta que una errata en el nombre de una clave provoca un KeyError tres capas más abajo. Este conversor de JSON a Python genera clases tipadas a partir de un ejemplo JSON para que tu editor, tu verificador de tipos y tus compañeros sepan exactamente qué contiene cada payload. Cada objeto se convierte en una clase con atributos anotados, los objetos anidados pasan a ser clases propias, las listas se tipan según el tipo de sus elementos y los valores que a veces faltan se tipan como opcionales. Las claves JSON se convierten en atributos snake_case, mientras que el código de serialización generado conserva las claves originales en los datos intercambiados.

La generación corre a cargo de quicktype, que combina todos los elementos de cada array antes de inferir los tipos, por lo que un campo que solo aparece en algunos elementos se captura igualmente y se marca como opcional, en lugar de descartarse en silencio.

Dataclasses, Pydantic y versiones de Python

Por defecto, la salida usa clases @dataclass de la biblioteca estándar, más funciones from_dict y to_dict que validan y convierten cada campo, así que no necesitas dependencias de terceros. Si tu proyecto ya usa Pydantic, por ejemplo para cuerpos de petición de FastAPI, configuración o validación, marca Pydantic BaseModel y las clases heredarán de BaseModel. El selector de versión de Python controla la sintaxis de tipos: 3.10+ genera anotaciones modernas como list[int] y str | None, mientras que los objetivos más antiguos recurren al módulo typing. Marca Classes only para omitir por completo los helpers de conversión.

Consejos prácticos

Usa un ejemplo que cubra los campos opcionales y contenga varios elementos por array, ya que la inferencia solo puede describir lo que ve. Pon a la clase raíz el nombre de tu dominio — Invoice se lee mejor que Root — y la descarga usará ese nombre. Después de generar, ejecuta tu formateador y tu verificador de tipos (Black, Ruff, mypy o Pyright) y afina lo que el ejemplo no podía revelar, como cadenas que en realidad son enums o números que deberían ser Decimal. Todo el análisis y la generación de código ocurren en local, así que puedes pegar con seguridad respuestas que contengan datos de clientes.

Cómo usar

  1. Pega el JSONPega un objeto o array JSON, o haz clic en Load sample.
  2. Elige un estiloSelecciona tu versión de Python y si quieres dataclasses o modelos Pydantic.
  3. Copia las clasesCopia el código generado o descárgalo como módulo .py.

Preguntas frecuentes

¿Genera dataclasses o modelos Pydantic?
Ambos. La salida por defecto usa @dataclass con type hints; marca Pydantic BaseModel para obtener modelos Pydantic en su lugar.
¿Qué versiones de Python se admiten?
Puedes elegir 3.6, 3.7, 3.9 o 3.10+. Los objetivos más recientes usan genéricos integrados como list[str] y la sintaxis de unión X | None.
¿Se convierten los nombres de las propiedades a snake_case?
Sí. Los nombres de campo pasan a snake_case al estilo Python, mientras que las funciones generadas from_dict y to_dict conservan las claves JSON originales.
¿Se suben mis datos?
No. Todo se ejecuta en local en tu navegador, así que las respuestas de API privadas permanecen en tu dispositivo.
Publicidad