JSON a Python

Genera dataclasses de Python, modelos Pydantic o TypedDicts a partir de JSON

JSON de entrada

Opciones

Modelo

Salida Python

Pega JSON o carga un ejemplo para generar código Python.

Qué genera JSON a Python

JSON a Python convierte una respuesta de API o cualquier muestra JSON en definiciones de tipos de Python. El modo Dataclass escribe clases @dataclass y un método de clase from_dict, porque Root(**data) no construye dataclasses anidadas ni mapea claves renombradas. El modo Pydantic v2 escribe clases BaseModel y añade Field(alias="original-key") y populate_by_name solo donde cambia un nombre. El modo TypedDict conserva las claves JSON exactas y pasa a la sintaxis funcional TypedDict("Name", {...}) cuando una clave no es un identificador válido.

Cómo usarlo
  1. 1.Pega JSON, sube o suelta un archivo .json, o carga uno de los ejemplos.
  2. 2.Define el nombre del tipo raíz. Si la raíz del JSON es un array de objetos, este nombre se aplica al tipo de los elementos y se añade RootList como alias.
  3. 3.Elige Dataclass, Pydantic v2 o TypedDict y decide si los atributos usan snake_case.
  4. 4.Lee las notas bajo la salida y luego copia el código o descarga models.py.
Cómo se infieren los tipos
  • •Se revisan todos los elementos de cada array, no solo el primero, y los objetos del mismo array se combinan.
  • •Una clave que falta en algunos objetos es opcional; una clave que a veces es null es anulable. Ambos casos se distinguen.
  • •1 y 2.5 en la misma posición se amplían a número decimal; las demás mezclas se notifican.
  • •Los arrays vacíos y los valores que solo son null no aportan información de tipo, así que se usa un tipo genérico y una nota explica el motivo.
  • •Correspondencia de tipos: cadena → str, entero → int, decimal → float, booleano → bool, array → list[T], objeto → clase anidada, desconocido → Any, null observado → T | None.
  • •Las palabras reservadas pasan a class_, las claves que empiezan por un dígito reciben el prefijo field_ y los nombres que coinciden reciben _2.
Límites y privacidad

Una muestra refleja cómo eran los datos en un momento, no el contrato completo de la API. Revisa los campos opcionales, los tipos genéricos y el tamaño de los números antes de confiar en el código. La entrada se limita a 5 MB y 256 niveles de anidación; a partir de 2 MB, la generación espera al botón Generar. Todo se ejecuta en tu navegador y el JSON nunca se sube. El código generado usa la sintaxis de uniones de Python 3.10+; el modo TypedDict con NotRequired necesita Python 3.11 o typing_extensions.

CodingTool ya está oficialmente disponible en

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