Saltar al contenido principal

Introducción

  • Este artículo te guía a través de la validación de datos con pydantic. Pydantic es una biblioteca de Python construida en Rust.
  • Antes de empezar, asegúrate de tener Python y la biblioteca Pydantic instalados en tu entorno. Consulta el comando de instalación de pydantic a continuación.
pip install pydantic

Creando un modelo

  • Primero, necesitaremos importar y hacer que nuestra clase herede de pydantic.BaseModel para empezar a validar. En nuestro ejemplo crearemos una clase llamada Person que tendrá un nombre, una edad y un correo electrónico.
from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int
    email: str
  • Con esta clase, cuando la instanciemos, pydantic validará si los parámetros name y email son cadenas de texto y si age es un entero.

Usando el modelo

  • Ahora que la tenemos creada, instanciaremos la clase. Crearemos un dict que contenga los datos y lo desempaquetaremos en nuestra clase.
data = {
    "name": "John",
    "age": 19,
    "email": "john@gmail.com"
}
person = Person(**data)
  • El ejemplo anterior no generará ningún error ya que todos los parámetros son del tipo correcto. Ahora crearemos un dato incorrecto para confirmar si nuestra validación funciona.
data = {
    "name": "John",
    "age": "19",
    "email": "john@gmail.com"
}
person = Person(**data)
  • En el ejemplo anterior se generará el error ValidationError porque age necesita ser un entero y no puede proporcionarse como una cadena de texto.

Creando una dataclass

  • También puedes crear dataclasses con pydantic, que serán similares a las dataclasses estándar de Python pero tendrán validaciones como BaseModel.
from pydantic import dataclass

@dataclass
class Person:
    name: str
    age: int
    email: str
  • Si enviamos una string a age, la convertirá a int.
Pydantic admite la validación recursiva, lo que significa que al validar modelos anidados, también valida los modelos internos.Si alguna clase tiene una lista de Person, people: list[Person], verificará cada elemento de la lista y lo convertirá en un Person.

Extras

  • Pydantic tiene algunos extras como validaciones de correo electrónico y un paquete de respaldo de timezone. Para instalarlos, necesitas ejecutar los siguientes comandos:
pip install pydantic[email]
pip install pydantic[timezone]
  • Puedes instalar ambos juntos ejecutando el siguiente comando.
pip install pydantic[email,timezone]
  • Pydantic[email] trae una clase para manejar correos electrónicos, normalizándolos y validando el formato user@domain.tld. Para esto, pydantic trae la clase EmailStr para realizar esta validación.
from pydantic import dataclass, EmailStr

@dataclass
class Person:
    name: str
    age: int
    email: EmailStr

¿Te gustó este artículo?

  • Creamos este contenido con mucho cuidado para ofrecer la mejor ayuda posible. Si este artículo te ayudó de alguna manera, ¡apoya nuestro trabajo! ¡Deja tu reseña! nos ayuda a entender qué es lo que más te importa.

Google Reviews

Deja tu reseña en Google Reviews.

Trustpilot

Deja tu reseña en Trustpilot.