Zum Hauptinhalt springen

Einführung

  • Dieser Artikel führt dich durch die Datenvalidierung mit Pydantic. Pydantic ist eine in Rust geschriebene Python-Bibliothek.
  • Bevor wir beginnen, stelle sicher, dass Python und die Pydantic-Bibliothek in deiner Umgebung installiert sind. Sieh dir den Installationsbefehl für Pydantic unten an.
pip install pydantic

Ein Modell erstellen

  • Zuerst müssen wir es importieren und unsere Klasse von pydantic.BaseModel erben lassen, um mit der Validierung zu beginnen. In unserem Beispiel erstellen wir eine Klasse namens Person, die einen Namen, ein Alter und eine E-Mail-Adresse hat.
from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int
    email: str
  • Wenn wir diese Klasse instanziieren, validiert Pydantic, ob die Parameter name und email Strings sind und age eine Ganzzahl ist.

Das Modell verwenden

  • Nachdem wir es nun erstellt haben, instanziieren wir die Klasse. Wir erstellen ein Dict mit den Daten und entpacken es in unsere Klasse.
data = {
    "name": "John",
    "age": 19,
    "email": "john@gmail.com"
}
person = Person(**data)
  • Das obige Beispiel löst keinen Fehler aus, da alle Parameter den korrekten Typ haben. Nun erstellen wir fehlerhafte Daten, um zu bestätigen, dass unsere Validierung funktioniert.
data = {
    "name": "John",
    "age": "19",
    "email": "john@gmail.com"
}
person = Person(**data)
  • Im obigen Beispiel wird der Fehler ValidationError ausgelöst, da age eine Ganzzahl sein muss und nicht als String angegeben werden kann.

Eine dataclass erstellen

  • Mit Pydantic kannst du auch dataclasses erstellen, die den Standard-dataclasses von Python ähneln, aber Validierungen wie BaseModel besitzen.
from pydantic import dataclass

@dataclass
class Person:
    name: str
    age: int
    email: str
  • Wenn wir einen string an age senden, wird er in int konvertiert.
Pydantic unterstützt rekursive Validierung, was bedeutet, dass bei der Validierung verschachtelter Modelle auch die inneren Modelle validiert werden.Wenn eine Klasse eine Liste von Person besitzt, people: list[Person], prüft Pydantic jedes Element der Liste und konvertiert es in eine Person.

Extras

  • Pydantic verfügt über einige Extras wie E-Mail-Validierungen und ein Fallback-Zeitzonen-Paket. Um sie zu installieren, musst du die folgenden Befehle ausführen:
pip install pydantic[email]
pip install pydantic[timezone]
  • Du kannst beide gemeinsam installieren, indem du den folgenden Befehl ausführst.
pip install pydantic[email,timezone]
  • Pydantic[email] bringt eine Klasse zur Verarbeitung von E-Mails mit, die sie normalisiert und das Format user@domain.tld validiert. Dafür stellt Pydantic die Klasse EmailStr bereit, um diese Validierung durchzuführen.
from pydantic import dataclass, EmailStr

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

Hat Ihnen dieser Artikel gefallen?

  • Wir haben diesen Inhalt mit großer Sorgfalt erstellt, um Ihnen die bestmögliche Hilfe zu bieten. Wenn Ihnen dieser Artikel in irgendeiner Weise geholfen hat, unterstützen Sie unsere Arbeit! Hinterlassen Sie Ihre Bewertung! Sie hilft uns zu verstehen, was Ihnen am wichtigsten ist.

Google Reviews

Hinterlassen Sie Ihre Bewertung bei Google Reviews.

Trustpilot

Hinterlassen Sie Ihre Bewertung bei Trustpilot.