Esplora le funzionalità avanzate di convalida dei dati di Pydantic V2 |  di Lynn Kwong |  Ottobre 2023

 | Intelligenza-Artificiale

Scopri le nuove funzionalità e sintassi di Pydantic V2

Immagine di jackmac34 su Pixabay

La convalida dei dati rappresenta una pietra angolare per applicazioni robuste nel campo in continua evoluzione dell’ingegneria dei dati e dello sviluppo di software. Garantire la pulizia e l’accuratezza dei dati è essenziale non solo per l’affidabilità delle applicazioni ma anche per l’esperienza dell’utente.

Pydantic è la libreria di convalida dei dati più utilizzata per Python. Il nucleo della versione più recente (V2) di Pydantic è stato riscritto in Rust e offre prestazioni molto migliori rispetto alla versione precedente. Inoltre, ci sono alcuni importanti miglioramenti alle funzionalità come il supporto della modalità rigorosa, la convalida senza modello, la pulizia dello spazio dei nomi del modello, ecc.

Questo post approfondirà le funzionalità più recenti e le prestazioni migliorate delle potenti funzionalità di convalida dei dati di Pydantic, offrendo agli sviluppatori un set di strumenti completo per tutti i tipi di attività di gestione dei dati.

Preparazione

Per seguire gli esempi in questo post, dovresti installare una versione moderna di Python (≥ 3.10) e l’ultima versione di Pydantic V2. Si consiglia di gestire le diverse versioni di Python e le librerie con a conda ambiente virtuale:

conda create -n pydantic2 python=3.11
conda activate pydantic2

pip install -U pydantic

Utilizzo di base

Normalmente con Pydantic, dobbiamo prima definire lo schema dei nostri dati utilizzando i modelli, che sono semplicemente classi che ereditano da BaseModel. In questi modelli, i tipi di dati di ciascun campo sono definiti da suggerimenti sul tipo.

from pydantic import BaseModel

class ComputerModel(BaseModel):
brand: str
cpu: str
storage: int
ssd: bool = True

Per utilizzare questo modello per la convalida, possiamo creare un’istanza passando i valori per ciascun campo:

input_dict = {"brand": "HP", "cpu": "Intel i7 1265U", "storage": "256"}

computer = ComputerModel(**input_dict)

print(computer)
# brand='HP' cpu='Intel i7 1265U' storage=256 ssd=True

I dati della stringa per storage viene forzato a un numero intero definito nel modello.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *