DEV Community

Giovani Fouz
Giovani Fouz

Posted on

Introducción a Pydantic para Principiantes.

Pydantic es una poderosa biblioteca en Python diseñada para la validación y gestión de datos. Es especialmente útil cuando trabajas con datos que necesitan ser validados y transformados, como datos de entrada de API o formularios. Aquí te explico cómo empezar con Pydantic de manera sencilla.

¿Qué es Pydantic?
Pydantic permite definir modelos de datos utilizando anotaciones de tipo, y automáticamente valida y transforma los datos según estas anotaciones. Esto significa que puedes asegurarte de que tus datos tienen el formato correcto antes de usarlos en tu aplicación.

Instalación:
Primero, necesitas instalar Pydantic. Puedes hacerlo usando pip:

pip install pydantic
Enter fullscreen mode Exit fullscreen mode

Creación de un Modelo o Esquema:
Un modelo en Pydantic es una clase que hereda de BaseModel. Definimos los atributos de esta clase con sus tipos, y Pydantic se encarga del resto.

from pydantic import BaseModel

class User(BaseModel):
id: int
name: str
signup_ts: Optional[datetime] = None
friends: List[int] = []
Enter fullscreen mode Exit fullscreen mode

En este ejemplo, User es un modelo con cuatro atributos:

id: un entero obligatorio.
name: una cadena de texto obligatoria.
signup_ts: una marca de tiempo opcional.
friends: una lista de enteros, que por defecto es una lista vacía.

Validación de Datos:
Una vez definido el modelo, podemos crear instancias del mismo y Pydantic validará automáticamente los datos proporcionados.

Una vez definido el modelo, podemos crear instancias del mismo y Pydantic validará automáticamente los datos proporcionados.

from datetime import datetime

user = User(id=123, name='John Doe', signup_ts=datetime.now(), friends=[1, 2, 3])
print(user)
Enter fullscreen mode Exit fullscreen mode

Si los datos no son válidos, Pydantic generará un error.

Transformación de Datos:
Pydantic también puede transformar los datos según las anotaciones de tipo. Por ejemplo:

user = User(id='123', name='John Doe')
print(user)
Enter fullscreen mode Exit fullscreen mode

Aquí, Pydantic convertirá el id de cadena de texto a entero automáticamente.

Configuración Avanzada
Pydantic ofrece muchas opciones avanzadas, como alias para nombres de campos, validaciones personalizadas, y uso con JSON.

Alias
Podemos usar alias para los campos, lo que es útil cuando los nombres de los datos de entrada no coinciden con los de nuestro modelo.

class User(BaseModel):
    id: int
    name: str = Field(alias='username')

user = User(id=123, username='John Doe')
print(user)
Enter fullscreen mode Exit fullscreen mode

Integración con JSON
Pydantic facilita trabajar con JSON, permitiendo la exportación e importación de modelos a/desde JSON.

user = User(id=123, name='John Doe', age=30)
user_json = user.json()
print(user_json)

user_from_json = User.parse_raw(user_json)
print(user_from_json)
Enter fullscreen mode Exit fullscreen mode

Conclusión
Pydantic es una herramienta poderosa para la validación y transformación de datos en Python. Facilita el trabajo con datos estructurados y ayuda a asegurar que tus datos sean correctos y consistentes. ¡Empieza a usar Pydantic en tus proyectos y simplifica la gestión de datos en tus aplicaciones!

Top comments (0)