Desarrollador / Tipos
Conversor de JSON a Python
Convierte una muestra JSON en dataclasses de Python, definiciones TypedDict o modelos Pydantic, con clases anidadas, campos opcionales y anulables, y nombres en snake_case.
Conversor de JSON a Python: El conversor interpreta la estructura de la muestra: cada objeto se convierte en una clase, los arrays se convierten en list[...] y los objetos de un array se combinan, de modo que una clave ausente en algunos registros se vuelve opcional y una clave que a veces es null se convierte en "| None". Las claves que no son nombres válidos en Python se convierten a snake_case; los modelos Pydantic conservan la clave original como alias y TypedDict cambia a su forma funcional. La salida de varias muestras complejas se ejecutó en Python 3.13, y Pydantic validó la muestra con ella. Funciona al 100 % en tu navegador, sin subir archivos a ningún servidor.
- Categoría
- Herramientas de desarrollo
- Se ejecuta
- En tu navegador
- Coste
- Gratis · sin registro
- Disponibilidad
- Lista para usar
Funciona por completo en tu navegador
Python
from __future__ import annotations
from dataclasses import dataclass
@dataclass
class Address:
city: str
zip_code: str
@dataclass
class User:
id: int
user_name: str
avatar_url: str
score: float
tags: list[str]
address: Address
manager_id: int | None
nickname: str | None = None
UserList = list[User]
Escrito para Python 3.10 o posterior. Las claves que faltan en algunos objetos se vuelven opcionales; las claves que a veces son null se convierten en “| None”. Las dataclasses no vuelven a asignar al JSON las claves renombradas, así que usa Pydantic, que añade alias, cuando las claves no sean nombres válidos de Python.
De los tipos a la validación
Las sugerencias de tipos por sí solas no comprueban los datos en tiempo de ejecución: json.loads te proporciona diccionarios y listas simples, independientemente de lo que indiquen las anotaciones. Los modelos de Pydantic validan y convierten los datos al analizarlos, mediante Model.model_validate(data), e informan de cada campo que no encaja.
Para ver el mismo ejemplo en otros lenguajes, consulta JSON a TypeScript y JSON a Go; para un contrato independiente del lenguaje, consulta JSON a JSON Schema.
Cómo obtener un buen ejemplo
Pega varios registros en lugar de uno, incluidos algunos con campos opcionales o vacíos, para que el convertidor pueda identificar qué claves están siempre presentes. Los valores que siempre son null o arrays vacíos se convierten en Any, que tendrás que completar manualmente.
Cómo se usa
- Pega una muestra JSON, preferiblemente un array con varios registros habituales.
- Elige dataclasses, TypedDict o Pydantic, y asigna un nombre al tipo de nivel superior.
- Copia las clases generadas en tu proyecto.
Privacidad y límites
El JSON se convierte en tu navegador y nunca se sube.
Herramientas relacionadas
Preguntas frecuentes
¿Qué estilo debería usar?
Pydantic para validar y analizar datos de una API, TypedDict para comprobar tipos en código que usa diccionarios normales y dataclasses para objetos internos sencillos que creas tú mismo.
¿Qué versión de Python necesita el código?
Python 3.10 o posterior, para la sintaxis X | None; NotRequired en TypedDict necesita 3.11, o typing_extensions en versiones anteriores.
¿Por qué algunos campos tienen el tipo Any?
Una clave que siempre es null o un array vacío no proporciona ninguna pista sobre su tipo; sustituye Any por el tipo real de la documentación de tu API.
Herramienta gratuita · se ejecuta en tu navegador · sin cuenta