Come migliorare la gestione dei dati con le classi di dati Pydantic

Come Migliorare La Gestione Dei Dati Con Le Classi Di Dati Pydantic



Le classi dati Pydantic offrono una soluzione avanzata per perfezionare la gestione dei dati in Python. Lavorare come framework di convalida dei dati semplifica il processo di creazione dei dati strutturati integrandoli con le classi di dati. Automatizza la convalida dei dati, la segnalazione degli errori e le conversioni dei tipi di dati. Ciò garantisce che i dati siano allineati ai requisiti specificati. Supporta inoltre i valori predefiniti, i campi opzionali e le strutture dati complesse. In breve, le classi di dati Pydantic aiutano i programmatori a ottimizzare le pratiche di gestione dei dati, portando a risultati di codifica efficaci e affidabili.

Sintassi:

Un modo semplice ma efficace per migliorare il modo in cui i dati vengono gestiti utilizzando le classi di dati Pydantic in Python è utilizzare il decoratore di classi con l'aiuto del quale creiamo essenzialmente un modello per come dovrebbero apparire i nostri dati. È come dare ai nostri dati una struttura chiara. Quindi, la sintassi per definire la classe di dati è la seguente:







classe nome del modello ( Modello base )

Il 'model_name' presenta il nome del modello che vogliamo creare e il 'BaseModel' di Pydantic agisce come un guardiano che garantisce che i dati seguano le regole che impostiamo e vengano passati al modello come parametro di input. All'interno della classe definiamo il tipo di informazioni che ogni dato deve contenere. Questo processo garantisce che quando creiamo un'istanza della classe dati, le informazioni che forniamo corrispondano a quanto definito.



Metodo 1: gestione dei dati migliorata con Dataclass di Pydantic

Immaginiamo di sviluppare una semplice applicazione per organizzare le informazioni sui libri della nostra collezione. Vogliamo garantire che i dati che raccogliamo per questo scopo siano accurati, coerenti e ben strutturati. È qui che entrano in gioco le classi di dati Pydantic per semplificare e migliorare il processo.



Per iniziare con l'esempio è necessario definire una classe dati Pydantic. Quindi, iniziamo definendo una classe dati Pydantic denominata 'Libri' che rappresenta i dettagli dei libri. Per definire la classe dati per Pydantic, dobbiamo assicurarci che tutti i pacchetti Pydantic siano installati prima nel progetto.





da pidantico importare Modello base

Utilizzando il decoratore di classi, creiamo la classe 'Book' che eredita dal BaseModel di Pydantic. All'interno della classe specifichiamo gli attributi come titolo, autore e release_year, ciascuno associato al rispettivo tipo di dati.

classe Libro ( Modello base ) :

titolo: stra

autore: stra

Anno di pubblicazione: int

Dopo aver creato un modello di classe, utilizziamo la classe dati Pydantic, sfruttando la potenza della classe dati 'Libro' per gestire i dati 'film':



In questa sezione imitiamo un utente che inserisce i dettagli relativi al libro. Il modello della classe dati 'libro' ha attributi come titolo, autore e anno di pubblicazione con i relativi tipi di dati distintivi. Quindi, in questa parte, cioè “input”, specifichiamo i loro valori.

ingresso = {

'titolo' : 'Soffrire' ,

'autore' : 'Adamo' ,

'Anno di pubblicazione' : 2023

}

Dopo aver specificato i dettagli sugli attributi del modello di libro nell'input, creiamo un'istanza 'Libro' con i dati forniti utilizzando questi dettagli; questo viene fatto per garantire che Pydantic convalidi automaticamente l'input rispetto alla struttura dati definita. Se c'è qualche incoerenza o errore, come un anno di rilascio non intero o un titolo mancante, Pydantic segnala rapidamente un errore insieme a una spiegazione intuitiva.

Tentativo :

libro = Libro ( ** ingresso )

stampa ( 'Dettagli del libro:' , libro. titolo , libro. autore , libro. Anno di pubblicazione )

tranne Eccezione COME È:

stampa ( 'Errore:' , È )

Per la gestione avanzata dei dati con le classi di dati Pydantic, riceviamo un meccanismo integrato per la convalida e la coerenza dei dati. Possiamo incorporare campi opzionali, valori predefiniti e complesse strutture nidificate per coprire i vari scenari di dati. Ciò garantisce che i nostri dati rimangano organizzati e formattati correttamente.

Questo passaggio esplora il modo in cui le classi dati Pydantic offrono funzionalità avanzate di gestione dei dati attraverso funzionalità come campi facoltativi, valori predefiniti e strutture nidificate.

Ecco un esempio in cui mostriamo come aggiungere i campi opzionali e i valori predefiniti:

Supponiamo di voler consentire agli utenti di inserire dettagli aggiuntivi sui libri come il genere e la durata. Tuttavia, questi dettagli potrebbero non essere sempre disponibili. Con le classi dati Pydantic, possiamo facilmente raggiungere questo obiettivo rendendo i campi facoltativi e persino impostando i valori predefiniti.

In questo esempio, la classe dati “Movie” include due nuovi campi: la lingua in cui è scritto il libro e il numero di pagine. Il campo 'lingua' ha un valore predefinito di 'Sconosciuto' che indica che se l'utente non fornisce questi dettagli, il valore predefinito sarà 'Sconosciuto'. Il campo 'numero di pagine' è facoltativo e può essere lasciato vuoto (impostato su nessuno).

da pidantico importare Modello base
classe Libro ( Modello base ) :
titolo: stra
autore: stra
Anno di pubblicazione: int
lingua: stra = 'sconosciuto'
pagine: int = Nessuno
ingresso = {
'titolo' : 'Soffrire' ,
'autore' : 'Adamo' ,
'Anno di pubblicazione' : 2023 ,
'lingua' : 'Inglese' ,
'pagine' : 2. 3. 4
}
libro = Libro ( ** ingresso )
stampa ( 'Dettagli del libro:' , libro. titolo , libro. autore , libro. Anno di pubblicazione , libro. lingua , libro. pagine )

Possiamo copiare queste righe di codice e incollarle nel compilatore per osservare i risultati:

da pidantico importare Modello base
classe Libro ( Modello base ) :
titolo: stra
autore: stra
Anno di pubblicazione: int
ingresso = {
'titolo' : 'Soffrire' ,
'autore' : 'Adamo' ,
'Anno di pubblicazione' : 2023
}

# Creazione di un'istanza del libro
Tentativo :
libro = Libro ( ** ingresso )
stampa ( 'Dettagli del libro:' , libro. titolo , libro. autore , libro. Anno di pubblicazione )
tranne Eccezione COME È:
stampa ( 'Errore:' , È )

Includendo questi campi opzionali e valori predefiniti, Pydantic garantisce che i dati rimangano ben strutturati e coerenti anche se gli utenti non forniscono determinati dettagli.

Metodo 2: gestione dei dati con Dataclass di Pydantic per il modulo di registrazione dello studente

Immagina di creare un modulo di registrazione per un evento scolastico. Le persone devono inserire le proprie informazioni e vogliamo evitare errori. È qui che aiutano le classi dati Pydantic. Si assicurano che i dati siano corretti e li gestiscono facilmente.

Dopo aver portato i pacchetti necessari al progetto Python, definiamo una classe dati Pydantic creando una classe dati Pydantic chiamata 'Student' per i dettagli dei partecipanti.

da pidantico importare Modello base

Utilizza il decoratore di classe per impostare la classe 'Studente'. Eredita dal BaseModel di Pydantic. All'interno diamo nomi agli attributi come nome, email, dipartimento e telefono, ciascuno con il suo tipo di dati.

classe Alunno ( Modello base ) :

nome: stra

e-mail : stra

Dipartimento: stra

telefono: stra

Ora con l'uso della classe dati Pydantic, lavora con la classe dati 'Student' per gestire i dati degli studenti:

informazioni = {

'nome' : 'XYZ' ,

'e-mail' : 'xyz@studente.com' ,

'Dipartimento' : 'Andrea' ,

'telefono' : '0003-4567234'

}

In questa parte facciamo finta che qualcuno si iscriva. Quando creiamo un'istanza 'Studente' utilizzando i loro dati, Pydantic controlla se si adatta alla struttura. Se si verifica un errore, come un'e-mail senza '@' o un reparto non stringa, Pydantic si ferma e spiega il problema.

alunno = Alunno ( **informazioni )

stampa ( 'Dettagli studente:' , alunno )

La migliore gestione dei dati utilizzando le classi di dati Pydantic ci fornisce dati pronti all'uso. Possiamo aggiungere più campi, impostare valori predefiniti o lavorare con configurazioni di dati complesse. Tutto ciò garantisce che i nostri dati rimangano organizzati.

Il codice e lo snippet dell'output sono menzionati di seguito per l'osservazione:

da pidantico importare Modello base

classe Alunno ( Modello base ) :
nome: stra
e-mail : stra
Dipartimento: stra
telefono: stra

informazioni = {
'nome' : 'XYZ' ,
'e-mail' : 'xyz@studente.com' ,
'Dipartimento' : 'Andrea' ,
'telefono' : '0003-4567234'
}
alunno = Alunno ( **informazioni )
stampa ( 'Dettagli studente:' , alunno )

Dopo aver osservato l'output, possiamo riassumere che le classi di dati Pydantic semplificano la gestione dei dati in questo semplice esempio. Si assicurano che l'input corrisponda a ciò che vogliamo. Ciò significa meno errori e utenti più soddisfatti.

Conclusione

Le classi dati Pydantic integrano il modo in cui gestiamo i dati. Garantiscono che le informazioni siano accurate e si adattino alla struttura richiesta. Ciò si traduce in meno errori e applicazioni più impeccabili. Con Pydantic, gli sviluppatori possono dedicare i propri sforzi alla creazione di app ben funzionanti senza essere disturbati dalle preoccupazioni relative ai problemi dei dati. Immagina di avere un task manager dedicato solo alla gestione dei dati, assicurando che tutto funzioni senza intoppi dall'inizio alla fine.