Omnikit
DesarrolloArchivosDineroTodas las herramientas
Ctrl K
Herramientas de desarrolloHerramientas de archivosCalculadoras financierasTodas las herramientas
InicioHerramientas para desarrolladoresConvertidor de JSON a clases Python
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Convertidor de JSON a clases Python

desarrollo

Convierta una muestra JSON en dataclasses, modelos Pydantic o TypedDict de Python con type hints

Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio. Comprobado el 16 de octubre de 2026.

Pegue una muestra JSON y obtenga dataclasses, modelos Pydantic v2 o TypedDict de Python con type hints. Los números enteros pasan a int y cualquier decimal convierte el campo en float; un valor null o ausente pasa a str | None con None como valor por defecto, y los 3 estilos de clase comparten la misma inferencia.

Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés

Siguiente:
  • JSON to Zod Paste a JSON sample and get a Zod schema with its z.infer type, ready to copy
  • Formateador y validador JSON Formatee, valide, minifique y ordene JSON con la posición exacta de cada error

Cómo convertir JSON en una clase Python

1

Pegue una muestra JSON, por ejemplo la respuesta de una API, en el cuadro de la izquierda.

2

Las clases Python aparecen mientras escribe: una clase por objeto, con type hints como int, float, list[str] y str | None.

3

Elija dataclass, Pydantic o TypedDict, y el tipado de Python 3.9 si su proyecto es anterior a 3.10.

4

Pulse Copiar, o Descargar para guardar models.py.

Acerca del Convertidor de JSON a clases Python

Python lee JSON como diccionarios, y una clase con type hints es lo que permite que un editor, un verificador de tipos o Pydantic detecten una clave mal escrita o un tipo erróneo. Este convertidor escribe esas clases a partir de una muestra, así que una respuesta de API larga se convierte en Python tipado con un solo pegado.

Cómo se eligen los tipos.

Valor JSON Tipo Python
"text" str
true / false bool
42 (solo números enteros) int
4.5 (si aparece algún decimal) float
null, y además un tipo str | None, u Optional[str]
solo null, o tipos mezclados Any
[ ... ] list[...]
{ } vacío dict[str, Any]
{ ... } una clase propia

Arrays de objetos. Todos los objetos de un array se fusionan en una clase, así que una clave que aparece solo en algunos sigue estando, con un tipo que admite None y None como valor por defecto. Dos objetos con exactamente las mismas claves y tipos comparten una clase.

Tres estilos. Una dataclass no necesita instalar nada; los campos con valor por defecto se colocan después de los demás, porque de lo contrario Python lanza un TypeError. Los modelos Pydantic usan atributos en snake_case con Field(alias=...) para las claves escritas de otra forma, como userName o first-name. Un TypedDict conserva las claves exactamente y marca como NotRequired las que aparecen solo a veces.

Orden y nombres. Las clases se escriben primero las hijas, de modo que cada nombre está definido antes de usarse. Una palabra clave como class pasa a ser class_, y una clave que ocultaría un tipo, como list, recibe el mismo guion bajo.

Cada estilo se comprobó ejecutando el resultado en CPython con Pydantic 2 y validando la muestra. Nada de lo que pegue sale del navegador.

Preguntas frecuentes

¿Cómo convierto JSON en una clase Python?

Pegue una muestra JSON en el convertidor y las clases Python aparecen al lado, una por objeto, con un type hint en cada atributo. Elija dataclass para clases simples, Pydantic para validar o TypedDict para seguir trabajando con diccionarios normales, y copie el módulo en su proyecto.

¿Debo usar una dataclass, un modelo Pydantic o un TypedDict?

Una dataclass sirve para datos que usted mismo construye y no necesita ninguna biblioteca. Pydantic sirve para datos externos, como respuestas de API, porque comprueba cada valor y convierte los objetos anidados por usted. Un TypedDict solo añade type hints al diccionario que devuelve json.loads, así que no cuesta nada en tiempo de ejecución.

¿Qué pasa con claves JSON como userName o first-name?

Los atributos de Pydantic se escriben en snake_case, como pide PEP 8, con Field(alias="userName") para que la validación siga leyendo la clave original. Un TypedDict conserva cada clave exactamente y pasa a la sintaxis funcional cuando una clave no es un nombre válido. Una dataclass conserva las claves que son nombres válidos y anota el resto.

¿Por qué un campo tiene el tipo str | None u Optional[str]?

Una clave que era null en la muestra, o que falta en algunos objetos de un array, puede contener None, así que su type hint lo admite. Las claves ausentes reciben además None como valor por defecto, y en una dataclass esos campos pasan al final, porque Python rechaza un campo sin valor por defecto detrás de uno que lo tiene.

¿Qué versión de Python necesita el resultado?

El tipado por defecto, como list[str] y str | None, necesita Python 3.10 o posterior. Active el tipado de Python 3.9 para obtener Optional y List del módulo typing. NotRequired para TypedDict viene de typing_extensions, y está en el propio typing desde Python 3.11.

¿Se sube mi JSON?

No. La conversión se hace en su navegador sin ninguna petición a un servidor, y el JSON no se guarda, así que las respuestas de API con tokens o datos personales se quedan en su dispositivo. Cierre la pestaña y no queda nada.

Fuentes

  • Python documentation, dataclassesField order rule: no field without a default after one with a default
  • Python documentation, typing.TypedDict and NotRequiredClass and functional syntax, keys that may be missing
  • PEP 8, naming conventionsCapWords class names, snake_case attributes, a trailing underscore after a keyword
  • Pydantic documentation, fields and aliasesField(alias=...) to read a JSON key into another attribute name

Última verificación: 16 de octubre de 2026.

Los tipos y las normas cambian; consulte la fuente antes de fiarse de una cifra.

¿Sigue sin resolverlo? Pregunte sobre Convertidor de JSON a clases Python y cualquiera que lo sepa puede responder. No se necesita cuenta.

Herramientas relacionadas

Todas las herramientas para desarrolladores
Codificar y decodificar Base64Texto y archivos a Base64 y de vuelta, con modo seguro para URL y vista previa de imágenesConversor de timestamp UnixDe timestamps Unix a fechas y de fechas a timestamps, en cualquier zona horariaJSON a TypeScriptGenere interfaces o tipos de TypeScript a partir de una muestra JSONConvertir CSV a JSONConvierta CSV a JSON y JSON a CSV, con una vista previa en tablaConvertir YAML a JSONConvierta YAML a JSON y JSON a YAML, con los anclajes resueltosCodificador y decodificador de URLCodifique o decodifique texto y URL con codificación porcentual y vea cada parte de un enlaceConversor de coloresHEX, RGB, HSL, HWB, OKLCH y CMYK en ambos sentidos, con comprobación de contrasteConversor de bases numéricasBinario, octal, decimal, hexadecimal y cualquier base hasta 36, exacto a cualquier tamaño, con complemento a dos
¿Le ha resultado útil esta herramienta?
Omnikit

Tareas pequeñas, hechas en su navegador. Gratis, rápido y privado. Los archivos nunca se suben.

Archivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desarrollo

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Dinero

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuíasPreguntasAcerca deCómo verificamosBiblioteca de leyes (beta)PrivacidadCondicionesDivulgaciónContactoMore: Exam practice (UGC NET Paper 1)Se ejecuta en su navegador. No se sube nada. © 2026 Omnikit (theomnikit.com)