Skip to main content
Volver a herramientas

JSON to Python Dataclass

Genera dataclasses de Python con type hints a partir de un objeto JSON

Acerca de JSON to Python Dataclass

Genera dataclasses de la biblioteca estándar con type hints y campos en snake_case, cada una con un classmethod from_dict que lee las claves JSON originales y construye las clases anidadas. Los enteros pasan a int, los decimales a float, los null y las claves que faltan en algunos elementos de un array a Optional, y los valores mixtos o vacíos usan Any; las claves que son palabras reservadas reciben un guion bajo, como class_. Útil para scripts que consumen APIs; los type hints no se validan en tiempo de ejecución, y todo ocurre en tu navegador.

Categoría: Conversores.

Preguntas frecuentes

¿Por qué cada clase tiene un método from_dict?

▾

Una dataclass solo acepta sus nombres de campo como argumentos, así que Root(**data) falla con claves como userName o my-key y deja los objetos anidados como dicts. from_dict asigna cada clave JSON a su campo en snake_case y construye las clases anidadas, así que llama a Root.from_dict(json.loads(texto)).

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

▾

Python 3.9 o posterior, porque las listas y los diccionarios se escriben como list[str] y dict[str, Any]. La línea from __future__ import annotations permite que una clase haga referencia a clases definidas más abajo en el archivo.

¿La dataclass verifica los tipos de los datos recibidos?

▾

No. Los type hints no se aplican en tiempo de ejecución, así que un string en un campo int pasa sin aviso. Ejecuta mypy o pyright sobre tu código, o lleva las clases a una biblioteca de validación como pydantic si necesitas comprobaciones en tiempo de ejecución.

¿Cómo cargo un array JSON en el nivel superior?

▾

La clase de los elementos se llama Root y RootList es un alias de list[Root], así que arma la lista con [Root.from_dict(item) for item in json.loads(texto)]. Un array de primitivos recibe en cambio un alias simple, como Root = list[int].

Herramientas relacionadas