Entrada JSON

Salida Python

¿Qué es JSON a Python?

Has llamado a una API, obtenido una respuesta JSON, y ahora accedes a todo con response["data"]["user"]["email"] — sin autocompletado, sin comprobación de tipos, y un typo te lleva directo a un KeyError. json.loads() te da un dict, que está bien para scripts rápidos. Pero para código de aplicación real, las dataclasses tipadas o los modelos Pydantic son mucho mejores. Esta herramienta genera clases Python directamente desde tu JSON — pégalo, obtén código Python estructurado y cópialo en tu proyecto.

Esta herramienta genera definiciones de clases Python desde tu JSON. Activa Dataclass, Typing y Nullable en el panel de configuración. Las dataclasses (Python 3.7+) te dan __init__, __repr__ e igualdad gratis. Usa la salida con json.loads() y mapeo manual, o adáptala para validación con Pydantic.

La conversión se ejecuta completamente en tu navegador. Tu JSON nunca se envía a un servidor. Puedes confirmarlo abriendo la pestaña de red de tu navegador.

Cómo usar esta herramienta

1

Pegar o subir JSON

Copia tu JSON y pégalo en el editor izquierdo. También puedes hacer clic en Subir para cargar un archivo .json o .txt. Usa el botón Ejemplo para datos de ejemplo. En el panel de configuración, configura el nombre de clase (ej. User) y opciones: Dataclass para @dataclass, Typing para anotaciones List[Type], Nullable para Optional[T].

2

Revisar las clases generadas

El panel derecho muestra el código Python generado. Los objetos anidados se convierten en clases anidadas. Los arrays obtienen List[Type] del módulo typing. Las dataclasses usan @dataclass; si no, obtienes clases regulares con __init__. Si tu JSON tiene sintaxis inválida, corrígelo primero con el Formateador JSON o el Validador JSON.

3

Copiar o descargar

Usa Copiar para poner el resultado en el portapapeles, o Descargar para guardarlo como archivo .py. Pégalo en tu proyecto. Para tipado dinámico, json.loads() es suficiente. Para validación y parsing, considera Pydantic.

Ejemplos de JSON a Python

Aquí un ejemplo de generación de dataclasses de Python desde un objeto JSON.

Ejemplo: Registro de suscriptor

Entrada JSON:

Entrada

Salida Python generada:

Salida

Cuándo ayuda JSON a Python

La mayoría de desarrolladores necesitan esto al integrar con APIs REST. Envías una petición a través de Postman, requests o httpx, y la respuesta viene como JSON. Pegarlo aquí te da clases tipadas para acceso estructurado. Para extraer valores específicos de respuestas grandes, jq funciona bien desde la línea de comandos.

Los archivos de configuración, payloads de webhooks o streams de eventos suelen ser JSON. Procesarlos aquí ayuda a entender la estructura y generar clases Python para type hints, validación o pipelines de procesamiento de datos.

Si estás construyendo una app FastAPI o Flask que consume APIs externas, tener modelos tipados mejora la calidad del código y detecta errores temprano. Las clases generadas pueden adaptarse para Pydantic con cambios mínimos.

Preguntas frecuentes

¿Cómo convierto JSON a una dataclass de Python automáticamente?

Pega tu JSON en esta herramienta, activa la opción Dataclass, y generará una clase @dataclass por cada objeto anidado. Cópialo en tu proyecto — funciona con Python 3.7+.

¿Cuál es la diferencia entre una dataclass y una clase regular para JSON?

Las dataclasses (Python 3.7+) generan automáticamente __init__, __repr__ y __eq__. Las clases regulares necesitan __init__ manual. Para la mayoría del trabajo con APIs, las dataclasses son más limpias. Para validación, considera Pydantic.

¿Se envían mis datos a algún sitio?

No. Todo se ejecuta en tu navegador. Tu JSON nunca sale de tu máquina — seguro para respuestas de API en producción o datos sensibles.

¿Puedo usar esto con Pydantic?

La salida es Python estándar. Para Pydantic, cambia la clase base a BaseModel y elimina @dataclass. Pydantic también tiene un método model_validate() que gestiona el parsing desde un dict automáticamente.

¿Qué hay de snake_case vs camelCase?

JSON suele usar camelCase; la convención Python es snake_case. El generador usa las claves JSON tal cual. Para Pydantic, usa model_config = ConfigDict(populate_by_name=True) y Field(alias="camelCaseKey") para el mapeo.

Herramientas relacionadas

Para manejo de JSON en Python, ver el módulo json de Python y Pydantic. Para JSON, ver especificación JSON, RFC 8259 y MDN. Ver también jq y Postman.