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.

Se ejecuta
En tu navegador
Coste
Gratis · sin registro
Disponibilidad
Lista para usar
JSON a PythonProcesamiento local

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

  1. Pega una muestra JSON, preferiblemente un array con varios registros habituales.
  2. Elige dataclasses, TypedDict o Pydantic, y asigna un nombre al tipo de nivel superior.
  3. 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