Pydantic: Benutzerdefinierte Validierung meistern – Ein umfassender Leitfaden
Marek Majdak
14. Aug. 2024・8 Min. Lesezeit
Inhaltsverzeichnis
Einführung in benutzerdefinierte Validierung mit Pydantic
Was ist Pydantic?
Warum Custom Validation wichtig ist
Erste Schritte mit Pydantic
Grundlegende Pydantic-Validierung
Standardfunktionen der Validierung
Häufige Anwendungsfälle
Grenzen der Standardvalidierung
Eigene Validatoren erstellen
Den ersten eigenen Validator schreiben
Validierungsfehler behandeln
Eigene Validatoren wiederverwenden
Fortgeschrittene Techniken für benutzerdefinierte Validierung
Verschachtelte Modelle und benutzerdefinierte Validierung
Bedingte Validierungsszenarien
Mehrere Validatoren kombinieren
Best Practices und Tipps
Eigene Validatoren debuggen
Performance-Aspekte
Praxisbeispiele
Datenvalidierung ist ein wesentlicher Baustein, um die Integrität und Zuverlässigkeit von Anwendungen sicherzustellen. Pydantic, eine leistungsfähige Library für Data Validation und Settings Management, bietet einen schlanken Ansatz für diese Aufgaben. Ein herausragendes Merkmal ist die Möglichkeit, benutzerdefinierte Validierungsregeln zu erstellen, die exakt auf spezifische Anforderungen zugeschnitten sind. Dieser Leitfaden taucht in die Feinheiten der Pydantic Custom Validation ein und zeigt Schritt für Schritt, wie Sie diese Funktion effizient implementieren und nutzen. Ob Sie bereits erfahren sind oder gerade erst anfangen – dieser umfassende Guide vermittelt das nötige Wissen, um Ihre Datenvalidierung souverän zu verbessern.
Einführung in benutzerdefinierte Validierung mit Pydantic
Was ist Pydantic?
Pydantic ist eine robuste Python-Library für Datenvalidierung und Settings Management. Sie arbeitet vor allem mit Python-Typannotationen, definiert darüber Datenmodelle und stellt sicher, dass Eingaben validiert und in die erwarteten Typen konvertiert werden. Das ist besonders nützlich für Webanwendungen, APIs und Datenverarbeitung. Pydantics große Stärke liegt in der einfachen Handhabung und der Möglichkeit, benutzerdefinierte Validierungsregeln zu definieren – einschließlich Model-Validatoren. Damit lassen sich Geschäftslogik und Datenintegrität wirkungsvoll durchsetzen. Diese maßgeschneiderten Regeln heben Pydantic von anderen Libraries ab und machen es zu einem unverzichtbaren Werkzeug im Python-Stack. Ob einfache Formulare oder komplexe Datenstrukturen: Pydantic vereinfacht den Prozess und sorgt dafür, dass die Daten Ihrer Anwendung verlässlich und konsistent bleiben.
Warum Custom Validation wichtig ist
Benutzerdefinierte Validierung ist entscheidend, weil sie sicherstellt, dass Daten spezifischen, oft einzigartigen Geschäftsregeln entsprechen. Standardvalidierung prüft Typen und Formate, Custom Validation geht weiter und erzwingt kontextspezifische Regeln. So kann etwa sichergestellt werden, dass ein Alter in einem bestimmten Bereich liegt oder eine E-Mail-Adresse zu einer bestimmten Domain gehört. Die Custom-Validation-Funktionen von Pydantic ermöglichen es, solche differenzierten Regeln mühelos umzusetzen – das steigert Zuverlässigkeit und Funktionsumfang Ihrer Anwendungen. Das Ergebnis: weniger Fehler, höhere Datenqualität und robustere, sicherere Software. Wer Pydantic Custom Validation beherrscht, gestaltet Datenverarbeitung flexibler, wartbarer und präziser – und erfüllt individuelle Anforderungen effizient.
Erste Schritte mit Pydantic
Um Pydantic zu verwenden, installieren Sie die Library zunächst mit pip install pydantic. Anschließend definieren Sie Datenmodelle: Ein Pydantic-Model ist eine Python-Klasse, die von pydantic.BaseModel erbt. Darin legen Sie Attribute und deren Typen fest. Zum Beispiel:
from pydantic import BaseModel class User(BaseModel): name: str age: int email: str
In diesem Beispiel hat das Model User die Attribute name, age und email mit jeweils festem Typ. Pydantic übernimmt automatisch Validierung und Typkonvertierung beim Erzeugen einer Instanz. Stimmen Eingaben nicht mit den erwarteten Typen überein, wirft Pydantic eine ValidationError. Diese Grundlage bereitet den Weg für fortgeschrittene, benutzerdefinierte Validierungen. Von hier aus können Sie die Komplexität schrittweise erhöhen, bis Ihre Validierungsanforderungen vollständig abgedeckt sind.
Grundlegende Pydantic-Validierung
Standardfunktionen der Validierung
Pydantic bringt eine Reihe von Standardfunktionen mit, die Datenintegrität einfach und effizient sicherstellen. Erstens werden Datentypen automatisch validiert: Ist ein Feld als Integer definiert, wird bei einer Zeichenkette eine ValidationError ausgelöst. Komplexe Strukturen wie Listen, Dictionaries und verschachtelte Modelle werden inklusive ihrer Elemente geprüft. Nützlich ist auch die automatische Typkonvertierung: Eine Zahl als String kann beispielsweise in einen Integer umgewandelt werden. Zudem gibt es eingebaute Unterstützung für häufige Datentypen wie E-Mail-Adressen, URLs und UUIDs – über ein breites Set an Feldtypen und Validatoren. Diese Defaults bilden ein starkes Fundament, das viele typische Validierungsfälle direkt abdeckt.
Häufige Anwendungsfälle
Die Standardvalidierung von Pydantic eignet sich für zahlreiche Szenarien. Ein Klassiker ist die Formularvalidierung in Web-Apps, bei der Nutzereingaben vor der Verarbeitung geprüft werden. Ebenso bewährt ist Pydantic bei API-Requests, insbesondere beim Validieren eingehender JSON-Payloads, die in die erwartete Struktur und Typen geparst werden. In Datenpipelines hilft Pydantic, heterogene Eingaben zu prüfen und zu standardisieren. Auch im Konfigurationsmanagement ist es verbreitet – etwa beim Validieren von Umgebungsvariablen oder Config-Dateien. Diese Beispiele zeigen die Vielseitigkeit von Pydantic als zuverlässige und effiziente Lösung für Datenvalidierung.
Grenzen der Standardvalidierung
So stark die Standardfunktionen sind – bei komplexer Geschäftslogik stoßen sie an Grenzen. Etwa wenn ein Datum in einem bestimmten Bereich liegen muss oder ein Benutzername in der Datenbank eindeutig sein soll: Dafür reicht Typprüfung nicht aus. Ebenso fehlt bedingte Logik, bei der ein Feld abhängig von einem anderen validiert wird. Auch kontextabhängige Validierung – wenn Regeln von externen Faktoren oder dynamischen Kriterien abhängen – ist mit Defaults allein nicht abgedeckt. Hier kommt Custom Validation ins Spiel: präzise, kontextspezifische Regeln, die Datenintegrität für individuelle Anforderungen sicherstellen.
Eigene Validatoren erstellen
Den ersten eigenen Validator schreiben
Eigene Validatoren mit Pydantic zu schreiben ist unkompliziert und erlaubt Regeln jenseits der reinen Typprüfung. Verwenden Sie dazu den @validator-Decorator in Ihrer BaseModel-Klasse und geben Sie an, welches Feld geprüft wird. Zum Beispiel:
from pydantic import BaseModel, validator class User(BaseModel): name: str age: int @validator('age') def check_age(cls, value): if value < 18: raise ValueError('Age must be at least 18') return value
Hier stellt check_age sicher, dass age mindestens 18 ist. Andernfalls wird eine ValueError geworfen. So kapseln Sie komplexe Logik direkt im Datenmodell und erfüllen spezifische Anforderungen. Beginnen Sie mit einfachen Validatoren und erweitern Sie die Logik bei Bedarf.
Validierungsfehler behandeln
Beim Einsatz eigener Validatoren ist sauberes Fehlerhandling wichtig. Schlägt eine Validierung fehl, wirft Pydantic eine ValidationError – ausgelöst durch Standard- oder Custom-Regeln – was zu einem oder mehreren Fehlern führen kann. Typischerweise fangen Sie diese mit einem try-except-Block rund um die Modellerzeugung ab. Zum Beispiel:
from pydantic import BaseModel, ValidationError, validator class User(BaseModel): name: str age: int @validator('age') def check_age(cls, value): if value < 18: raise ValueError('Age must be at least 18') return value try: user = User(name='Alice', age=15) except ValidationError as e: print(e.json())
Der Versuch, eine User-Instanz mit ungültigem Alter zu erstellen, führt zu einer ValidationError. Der Fehler wird abgefangen und im JSON-Format ausgegeben – ideal für Nutzerfeedback oder Logging. So bleibt Ihre Anwendung robust gegenüber fehlerhaften Daten.
Eigene Validatoren wiederverwenden
Ein Pluspunkt von Pydantic ist die Wiederverwendbarkeit eigener Validatoren über mehrere Modelle hinweg. Definieren Sie die Logik als Funktion oder Klassenmethode und binden Sie sie per @validator in unterschiedlichen Modellen ein. Zum Beispiel:
from pydantic import BaseModel, validator def validate_age(cls, value): if value < 18: raise ValueError('Age must be at least 18') return value class User(BaseModel): name: str age: int @validator('age') def check_age(cls, value): return validate_age(cls, value) class Employee(BaseModel): emp_id: int age: int @validator('age') def validate_employee_age(cls, value): return validate_age(cls, value)
Die Funktion validate_age wird hier in User und Employee wiederverwendet. Das erhöht Konsistenz, reduziert Duplikate und erleichtert Wartung und Updates Ihrer Validierungslogik.
Fortgeschrittene Techniken für benutzerdefinierte Validierung
Verschachtelte Modelle und benutzerdefinierte Validierung
Pydantic ist stark bei komplexen Strukturen und verschachtelten Modellen – wichtig für hierarchische Daten. Custom Validation kann auf mehreren Ebenen greifen. Beispiel: Ein User-Model enthält ein Address-Model:
from pydantic import BaseModel, validator class Address(BaseModel): street: str city: str postcode: str @validator('postcode') def validate_postcode(cls, value): if len(value) != 6: raise ValueError('Postcode must be 6 characters long') return value class User(BaseModel): name: str age: int address: Address @validator('age') def check_age(cls, value): if value < 18: raise ValueError('Age must be at least 18') return value
Hier validiert Address die postcode, die genau 6 Zeichen lang sein muss, während User das age-Feld prüft. So stellen Sie sicher, dass jede Ebene ihre eigenen Regeln einhält und gleichzeitig die Gesamtstruktur konsistent bleibt.
Bedingte Validierungsszenarien
Bedingte Validierung ist nötig, wenn die Gültigkeit eines Felds vom Wert eines anderen abhängt. In Pydantic lässt sich das mit Custom-Logik umsetzen, die als Field-Validatoren fungiert. Beispiel: Ein Employee ist entweder FullTime oder PartTime, und hours_per_week muss dazu passen:
from pydantic import BaseModel, validator class Employee(BaseModel): name: str employment_type: str hours_per_week: int @validator('hours_per_week') def validate_hours(cls, value, values): if values['employment_type'] == 'FullTime' and value < 35: raise ValueError('FullTime employees must work at least 35 hours per week') if values['employment_type'] == 'PartTime' and value > 34: raise ValueError('PartTime employees cannot work more than 34 hours per week') return value
Die Methode validate_hours liest employment_type, bevor sie hours_per_week prüft. Stimmen die Bedingungen nicht, wird eine ValueError ausgelöst. So wird feldübergreifend und kontextsensitiv validiert – ein häufiger Praxisfall, der die Robustheit deutlich erhöht.
Mehrere Validatoren kombinieren
Durch das Kombinieren mehrerer Validatoren erzwingen Sie eine ganze Reihe von Regeln für ein Feld. Das geht, indem Sie mehrere @validator-Decoratoren stapeln oder mehrere Methoden für dasselbe Feld definieren. Beispiel:
from pydantic import BaseModel, validator class Product(BaseModel): name: str price: float @validator('price') def check_positive_price(cls, value): if value <= 0: raise ValueError('Price must be positive') return value @validator('price') def check_reasonable_price(cls, value): if value > 10000: raise ValueError('Price seems unreasonably high') return value
Hier wird price erst auf Positivität geprüft und anschließend auf eine sinnvolle Obergrenze. Dieser gestaffelte Ansatz fängt mehr Fehler ab und macht Ihre Datenvalidierung insgesamt robuster.
Best Practices und Tipps
Eigene Validatoren debuggen
Debugging gelingt am besten strukturiert. Trennen Sie Validierungslogik sauber und dokumentieren Sie sie. Nutzen Sie Print-Statements oder Logging, um Zwischenwerte nachzuverfolgen. Zum Beispiel:
from pydantic import BaseModel, validator class User(BaseModel): name: str age: int @validator('age') def check_age(cls, value): print(f'Validating age: {value}') # Debugging line if value < 18: raise ValueError('Age must be at least 18') return value
Die Ausgabe zeigt, welche Werte geprüft werden; aussagekräftige Fehlermeldungen erleichtern zusätzlich die Ursachenanalyse. Testen Sie mit vielfältigen Eingaben inklusive Edge Cases, um alle Szenarien abzudecken. So identifizieren und beheben Sie Probleme zügig und erhöhen die Zuverlässigkeit Ihrer Custom Validation.
Performance-Aspekte
Gerade in Hochlastszenarien sollten Sie die Performance Ihrer Custom Validatoren im Blick behalten. Eigene Validatoren verursachen Overhead – besonders bei komplexer Logik oder externen Checks. Schreiben Sie Validierungen daher so effizient wie möglich: vermeiden Sie teure Berechnungen und doppelte Prüfungen, setzen Sie auf einfache Bedingungen, wenn sie ausreichen, und cachen Sie Ergebnisse teurer Operationen, falls diese wiederverwendet werden. Nutzen Sie Features wie @root_validator(pre=True) für frühe Plausibilitätsprüfungen, um unnötige Verarbeitung ungültiger Daten zu vermeiden. Profilen Sie Ihre Anwendung (z. B. mit cProfile oder line_profiler), um Engpässe zu finden und gezielt zu optimieren.
Praxisbeispiele
In E‑Commerce‑Plattformen stellen Custom Validatoren die Datenqualität von Produkten sicher – etwa positive Preise und nicht negative Lagerbestände. Ein Validator kann zum Beispiel erzwingen, dass Rabatte 50% nicht überschreiten:
from pydantic import BaseModel, validator class Product(BaseModel): name: str price: float discount: float @validator('discount') def check_discount(cls, value, values): if value > 50: raise ValueError('Discount cannot exceed 50%') return value
Im Gesundheitswesen lassen sich Patientendaten prüfen, etwa dass Geburtsdaten in der Vergangenheit liegen und Akten bestimmten Formaten entsprechen. In Finanzanwendungen stellen Validatoren sicher, dass Transaktionsbeträge innerhalb erlaubter Grenzen liegen und Kontonummern vordefinierten Mustern folgen. Diese Beispiele zeigen, wie Pydantic Custom Validation mithilfe einfacher Validatoren Datenintegrität wahrt, Geschäftsregeln durchsetzt und die Zuverlässigkeit unterschiedlichster Softwaresysteme erhöht.
Digital Transformation Strategy for Siemens Finance
Cloud-based platform for Siemens Financial Services in Poland


Das könnte Ihnen auch gefallen...

Qualitätskennzahlen messen: Ein tiefgehender Einblick in die Datenqualität
Qualitätskennzahlen sind der Kompass, der moderne Unternehmen auf dem Weg zur Exzellenz führt. In einer datengetriebenen Welt kann das Verständnis, wie man diese Kennzahlen misst und gezielt nutzt – insbesondere im Zusammenspiel mit Azure und Snowflake – zum echten Game Changer werden. Tauchen Sie mit uns tief ein in die Welt der Qualitätskennzahlen und entfalten Sie ihr Potenzial, um Produkte, Services und Prozesse zu verbessern. Erfahren Sie, wie sie fundierte Entscheidungen ermöglichen, die Kundenzufriedenheit erhöhen und Kosten senken, indem Fehler frühzeitig erkannt werden. In diesem Leitfaden beleuchten wir das Was, Warum und Wie von Qualitätskennzahlen und zeigen, welche Tools es gibt, um diesen kritischen Prozess zu automatisieren. Am Ende werden Sie erkennen, welche zentrale Rolle Qualitätskennzahlen für den Erfolg von Unternehmen in der heutigen datengetriebenen Welt spielen.
Olaf Kühn
04. Sept. 2023・4 Min. Lesezeit

Optimieren Sie Ihren Tourenbetrieb mit CRM-Software für geführte Touren
CRM-Software für geführte Touren ist für moderne Reiseveranstalter unverzichtbar, um das Kundenbeziehungsmanagement zu stärken, Buchungsabläufe zu optimieren und wertvolles Feedback zu sammeln. Durch die Integration dieser Tools können Touranbieter sich auf außergewöhnliche Erlebnisse konzentrieren, während die Technologie die Prozesse im Hintergrund übernimmt.
Marek Majdak
08. Apr. 2024・13 Min. Lesezeit

Netzwerktopologien verstehen: Ein Leitfaden für Einsteiger
Dieser Einsteigerleitfaden zu Netzwerktopologien erklärt die verschiedenen Arten von Netzwerkstrukturen und ihre Bedeutung. Er behandelt die wichtigsten Konzepte, die Vor- und Nachteile jeder Topologie sowie die Faktoren, die Sie bei der Auswahl der passenden Topologie für Ihre Anforderungen berücksichtigen sollten.
Alexander Stasiak
15. Mai 2024・7 Min. Lesezeit

Die besten BI-Tools für Finanzinstitute: Ein praxisorientierter Leitfaden
Dieser Leitfaden stellt die besten Business-Intelligence-(BI)-Tools für Finanzinstitute vor, mit denen Sie Ihre Datenanalyse optimieren und fundiertere Entscheidungen treffen. Erfahren Sie, wie diese Tools umsetzbare Insights liefern, die operative Effizienz steigern und die finanzielle Performance verbessern. Statten Sie Ihr Institut mit der passenden BI-Lösung aus, um wettbewerbsfähig zu bleiben.
Marek Pałys
04. Okt. 2024・11 Min. Lesezeit

PostgreSQL-Datenbank-Dump erstellen und wiederherstellen
Für Backups und Migrationen sind das Erstellen von Dumps und die Wiederherstellung von PostgreSQL-Datenbanken unverzichtbar. Dieser Leitfaden erklärt, wie man mit pg_dump verlässliche Datenbank-Backups erstellt und mit pg_restore Daten sicher wiederherstellt – für ein reibungsloses und sicheres Datenbank-Management.
Marek Pałys
08. Juli 2024・5 Min. Lesezeit

Firebase und AWS Amplify: Welche Lösung ist die richtige für Ihre Anforderungen an die App-Entwicklung?
Firebase und AWS Amplify gehören zu den führenden Plattformen für mobile und Webanwendungen. Firebase überzeugt durch Benutzerfreundlichkeit, Echtzeit-Datenbankfunktionen und Google-Integration. AWS Amplify bietet Skalierbarkeit, Backend-Services und eine robuste AWS-Infrastruktur – ideal für komplexe, Cloud-basierte Apps.
Marek Majdak
21. Nov. 2024・9 Min. Lesezeit
Kürzlich hinzugefügt

Cloud-Infrastrukturmanagement
So betreiben Sie eine skalierbare, sichere und kosteneffiziente Cloud-Infrastruktur: Grundpfeiler, FinOps, KI-gestützte Ops und die Auswahl des richtigen Partners.
Alexander Stasiak
12. Juni 2026・8 Min. Lesezeit

Cloud-Sicherheits-Compliance
Ein Schritt-für-Schritt-Leitfaden zur Compliance nach SOC 2, ISO 27001, DSGVO und HIPAA in der Cloud – inklusive der Einführung von Compliance-as-Code für sicheres Skalieren.
Alexander Stasiak
09. Juni 2026・10 Min. Lesezeit

Die besten KI-Tools zur Automatisierung von Geschäftsprozessen für 2026
Der Markt für KI-gestützte Unternehmensautomatisierung ist auf Kurs, von 2,9 Mrd. $ im Jahr 2023 auf 25 Mrd. $ bis 2027 zu wachsen, und Fortune-500-Unternehmen berichten bereits von 30–50 % Effizienzsteigerungen. Doch bei einer Bandbreite an Plattformen von No-Code-Zapier-Workflows bis zu Enterprise-Deployments mit UiPath besteht die eigentliche Herausforderung nicht darin, ob automatisiert werden sollte – sondern darin, das richtige Tool für die Größe, den Tech-Stack und den technischen Reifegrad Ihres Teams zu wählen. Dieser Leitfaden stellt die acht führenden KI-Automatisierungsplattformen des Jahres 2026 vor, vergleicht ihre Preise und Leistungsmerkmale im direkten Vergleich und bietet ein klares Framework, um das passende Tool auf Ihre konkreten Geschäftsziele abzustimmen.
Alexander Stasiak
16. Apr. 2026・11 Min. Lesezeit

KI-Chatbot für Ihre Unternehmenswebsite: Was CEOs vor dem Kauf wissen sollten
Die meisten Unternehmen, die ihrer Website einen KI-Chatbot hinzufügen, machen es falsch. Sie wählen ein generisches Widget, koppeln es an eine FAQ-Seite und wundern sich, warum sich nichts ändert. Das Problem ist nicht die Technologie, sondern der Ansatz. Hier erfahren Sie, was ein gut konzipierter KI-Chatbot für eine Unternehmenswebsite wirklich leistet, was er kostet und welche Fragen Sie stellen sollten, bevor Sie einen Vertrag mit einem Anbieter unterschreiben.
Alexander Stasiak
15. Apr. 2026・5 Min. Lesezeit

Wie Sie die Time-to-Productivity im SaaS-Onboarding verkürzen
Zwischen 40 und 60 Prozent der SaaS-Neuanmeldungen springen ab, bevor sie überhaupt spürbaren Mehrwert erleben — nicht, weil das Produkt schlecht ist, sondern weil das Onboarding zu langsam ist. Die Time to Productivity ist die Kennzahl, die SaaS-Unternehmen mit hoher Kundenbindung von denen trennt, die in einer Churn-Spirale feststecken. Dieses Playbook liefert Verantwortlichen in Product, Customer Success und Onboarding ein konkretes Framework, um produktive Nutzung zu definieren, Engpässe zu identifizieren und die Einarbeitungszeit von Wochen auf Tage zu verkürzen.
Alexander Stasiak
23. März 2026・15 Min. Lesezeit

LLM-Halluzinationen erklärt
Jedes LLM, das Sie bereitstellen, wird gelegentlich selbstbewusst klingende, flüssig formulierte und völlig falsche Informationen erzeugen. Das ist kein Bug, der sich per Patch beheben lässt - es ist ein grundlegendes Merkmal der Funktionsweise dieser Modelle. Dieser Artikel erklärt, warum Halluzinationen auftreten, wie sie in realen Enterprise-Use-Cases aussehen und wie Sie KI-Systeme entwickeln, die verhindern, dass halluzinierte Inhalte Ihre Nutzer, Ihre Kunden oder Ihre Codebasis erreichen.
Alexander Stasiak
22. März 2026・16 Min. Lesezeit
Bereit, Ihr Know-how mit KI zu zentralisieren?
Beginnen Sie ein neues Kapitel im Wissensmanagement – wo der KI-Assistent zum zentralen Pfeiler Ihrer digitalen Support-Erfahrung wird.
Arbeiten Sie mit einem Team, dem erstklassige Unternehmen vertrauen.
Wir entwickeln, was als Nächstes kommt.
Dienste




