Softwaretests | Detaillierte Einführung und grundlegende Einführung in Pydantic

Fügen Sie hier eine Bildbeschreibung ein

Einführung

Pydantic ist eine leistungsstarke Python-Bibliothek zur Datenvalidierung und -analyse, insbesondere für die Arbeit mit JSON-Daten. Sein Hauptziel besteht darin, die Datenvalidierung und -analyse einfach, intuitiv und wartbar zu machen. In diesem Artikel werden die Grundlagen von Pydantic vorgestellt, einschließlich der Definition von Modellen, der Validierung von Daten und der Behandlung von Fehlern.

Was ist Pydantic?

Pydantic ist eine Bibliothek zur Datenvalidierung und -analyse, die es uns ermöglicht, Datenmodelle zu definieren und Eingabedaten anhand dieser Modelle zu validieren. Eine seiner wichtigen Funktionen besteht darin, dass es Eingabedaten automatisch in stark typisierte Python-Objekte konvertiert und klare Fehlermeldungen bereitstellt, sodass wir Validierungsfehler problemlos beheben können.

Installieren Sie Pydantic

PydanticEs handelt sich um eine Python-Bibliothek eines Drittanbieters. Wir können sie direkt mit dem Befehl pip installieren. Der Befehl lautet wie folgt:

pip install pydantic

Definieren Sie das Pydantic-Modell

Um Pydantic verwenden zu können, müssen Sie zunächst eine Modellklasse definieren. Eine Modellklasse ist eine gewöhnliche Python-Klasse, die von pydantic.BaseModelden Datenfeldern und ihren Typen erbt und diese definiert. Hier ist ein einfaches Beispiel:

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int
	hooby: list

In diesem Beispiel definieren wir ein PersonModell mit dem Namen drei Felder: nameand ageund hobbymit den Typen String, Integer und List. Pydantic verwendet diese Felddefinitionen, um Eingabedaten zu validieren.

Verwendung von Pydantic-Modellen

Sobald das Pydantic-Modell definiert ist, können wir es zum Validieren und Analysieren von Daten verwenden. Hier sind einige häufige Anwendungsbeispiele:

  1. Modellinstanz erstellen

Wir können Modellinstanzen erstellen, indem wir Wörterbuchdaten übergeben, zum Beispiel:

data = {
    
    "name": "Alice", "age": 30, "hobby": ['football']}
person = Person(**data)
print(person)

----------
#######
输出结果如下:
name='Alice' age=30 hobby=['football']
  1. Datenüberprüfung

Pydantic überprüft automatisch, ob die Eingabedaten der Definition des Modells entsprechen. Wenn die Eingabedaten nicht der Definition entsprechen, pydantic.ValidationErrorwird eine Ausnahme ausgelöst. Zum Beispiel:

data = {
    
    "name": "Bob", "age": "thirty", "hobby": "basketball"}
person = Person(**data)  # 这里将引发ValidationError异常

----------
运行脚本,报错如下:
 person = Person(**data)  # 这里将引发ValidationError异常
  File "pydantic\main.py", line 331, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 2 validation errors for Person
age
  value is not a valid integer (type=type_error.integer)
hobby
  value is not a valid list (type=type_error.list)
  1. Feldwert abrufen

Wir können auf den Wert eines Modellfelds wie auf eine normale Klasseneigenschaft zugreifen:

data = {
    
    "name": "Muller", "age": 30, "hobby": ['football', 'reading', 'running']}
person = Person(**data)

print(person.name)
print(person.age)
print(person.hobby)
  1. In Wörterbuch konvertieren

Wir können die Modellinstanz in ein Wörterbuch konvertieren, damit sie in JSON-Daten serialisiert werden kann:

data = {
    
    "name": "Muller", "age": 30, "hobby": ['football', 'reading', 'running']}
person = Person(**data)

person_dict = person.dict()
print(person_dict)
  1. Behandeln Sie Validierungsfehler

Wenn die Validierung fehlschlägt, stellt Pydantic detaillierte Fehlerinformationen bereit, damit wir den Fehler beheben können. Wir können pydantic.ValidationErrorauf Fehlerinformationen zugreifen, indem wir Ausnahmen abfangen. Hier ist ein Beispiel:

from pydantic import BaseModel
from pydantic import ValidationError

class Person(BaseModel):
    name: str
    age: int
    hobby: list


try:
    data = {
    
    "name": "Muller", "age": "thirty", "hobby": ['football', 'reading', 'running']}
    person = Person(**data)
except ValidationError as e:
    print(e)

-------------
运行脚本,结果如下:
1 validation error for Person
age
  value is not a valid integer (type=type_error.integer)

Wir können sehen, dass die Ausgabe eine Fehlermeldung mit detaillierten Informationen zum Validierungsfehler enthält, die uns hilft, das Problem schnell zu identifizieren und zu lösen.

  1. Benutzerdefinierte Validierungsregeln

Zusätzlich zur grundlegenden Typvalidierung können wir auch Validierungsregeln anpassen. Wenn wir beispielsweise sicherstellen möchten, dass das Alter innerhalb eines bestimmten Bereichs liegt, können wir @validatormithilfe eines Dekorators eine benutzerdefinierte Validierungsfunktion definieren:

from pydantic import validator

class Person(BaseModel):
    name: str
    age: int
    hobby:list

    @validator("age")
    def age_must_be_positive(cls, age):
        if age < 0:
            raise ValueError("Age must be a positive integer")
        return age

In diesem Beispiel definieren wir eine age_must_be_positiveMethode, die überprüft, ob das Alter eine positive ganze Zahl ist.

Zusammenfassen

Pydanticist eine leistungsstarke Python-Bibliothek zur Datenvalidierung und -analyse. Damit können Sie ganz einfach Datenmodelle definieren, Daten validieren, Fehler behandeln und Validierungsregeln anpassen. Unabhängig davon, ob Sie eine Webanwendung, eine API, ein Befehlszeilentool oder eine andere Art von Python-Anwendung erstellen, Pydantickann es uns dabei helfen, Daten einfacher zu verarbeiten. Ich hoffe, dass dieser Artikel allen den Einstieg Pydanticerleichtern wird !

Ich denke du magst

Origin blog.csdn.net/Tester_muller/article/details/132904614
Empfohlen
Rangfolge