JSON a Python
Convertir JSON a clases POJO de Python para desarrollo Python
Entrada JSON
Salida Python
¿Qué es JSON a Python?
Python usa dict y clases personalizadas para datos estructurados. Al parsear JSON con json.loads(), obtienes dicts. Eso funciona para acceso dinámico, pero para acceso tipado, soporte IDE y validación sueles querer dataclasses o clases regulares. La especificación JSON define objetos, arrays, strings, números y booleanos—pero Python necesita definiciones de clase explícitas para cada estructura anidada.
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
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].
Revisar las clases generadas
El panel derecho muestra el código Python generado. Los objetos anidados se convierten en clases anidadas. Los arrays obtienen <code>List[Type]</code> del módulo typing. Las dataclasses usan <code>@dataclass</code>; si no, obtienes clases regulares con <code>__init__</code>. Si tu JSON tiene sintaxis inválida, corrígelo primero con el Formateador JSON o el Validador JSON.
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:
Salida Python generada:
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
¿Dataclass vs clase regular?
Las dataclasses (Python 3.7+) te dan __init__, __repr__, __eq__ y más gratis. Las clases regulares necesitan __init__ manual. Ambas funcionan con parsing JSON. Las dataclasses son preferidas para Python moderno.
¿Qué pasa con los tipos Optional?
Activa Nullable Types para obtener Optional[T] o T | None para campos que puedan faltar o ser null. La sintaxis de unión T | None requiere Python 3.10+.
¿Se envían mis datos a algún sitio?
No. La generación se ejecuta completamente en tu navegador con JavaScript. No se envían datos a ningún servidor. Puedes confirmarlo abriendo la pestaña de red de tu navegador.
¿Puedo usar esto con Pydantic?
La salida es Python estándar. Puedes adaptarla para Pydantic cambiando la clase base a BaseModel y añadiendo validadores. Pydantic también tiene su propia generación de esquema desde JSON.
¿snake_case vs camelCase?
JSON suele usar camelCase; Python prefiere snake_case. El generador usa las claves JSON tal cual. Usa Field(alias="camelCase") en Pydantic o un decodificador personalizado 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.