ソフトウェアテスト | Pydantic の詳細な紹介と基本的な紹介

ここに画像の説明を挿入します

導入

Pydantic は、データの検証と解析、特に JSON データの操作のための強力な Python ライブラリです。その主な目標は、データの検証と解析をシンプルかつ直観的かつ保守可能にすることです。この記事では、モデルの定義方法、データの検証方法、エラーの処理方法など、Pydantic の基本を紹介します。

ピダンティックとは何ですか?

Pydantic は、データ モデルを定義し、それらのモデルに対して入力データを検証できるようにするデータ検証および解析用のライブラリです。その重要な機能の 1 つは、入力データを厳密に型指定された Python オブジェクトに自動的に変換し、検証の失敗を簡単に処理できるように明確なエラー メッセージを提供することです。

Pydantic をインストールする

Pydanticこれは Python のサードパーティ ライブラリです。pip コマンドを使用して直接インストールできます。コマンドは次のとおりです。

pip install pydantic

Pydantic モデルを定義する

Pydantic を使用するには、まずモデル クラスを定義する必要があります。pydantic.BaseModelモデル クラスは、データ フィールドとその型を継承し、定義する通常の Python クラスです。簡単な例を次に示します。

from pydantic import BaseModel

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

この例では、Personという 3 つのフィールドをそれぞれ文字列、整数、およびリスト型で持つ名前のモデルを定義します。Pydantic はこれらのフィールド定義を使用して入力データを検証します。nameagehobby

Pydantic モデルの使用

Pydantic モデルを定義したら、それを使用してデータを検証および解析できます。一般的な使用例をいくつか示します。

  1. モデルインスタンスの作成

辞書データを渡すことでモデル インスタンスを作成できます。たとえば、次のようになります。

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

----------
#######
输出结果如下:
name='Alice' age=30 hobby=['football']
  1. データ検証

Pydantic は、入力データがモデルの定義に準拠しているかどうかを自動的に検証します。入力データが定義を満たさない場合、pydantic.ValidationError例外がスローされます。例えば:

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. フィールド値を取得する

通常のクラス プロパティと同じように、モデル フィールドの値にアクセスできます。

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

print(person.name)
print(person.age)
print(person.hobby)
  1. 辞書に変換する

モデル インスタンスを辞書に変換して、JSON データにシリアル化できるようにします。

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

person_dict = person.dict()
print(person_dict)
  1. 検証エラーを処理する

検証が失敗した場合、Pydantic はエラーを処理できるように詳細なエラー情報を提供します。pydantic.ValidationError例外をキャッチすることでエラー情報にアクセスできます。以下に例を示します。

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)

出力には、検証の失敗に関する詳細情報を含むエラー メッセージが含まれていることがわかります。これは、問題を迅速に特定して解決するのに役立ちます。

  1. カスタム検証ルール

基本的な型検証に加えて、検証ルールをカスタマイズすることもできます。たとえば、年齢が特定の範囲内にあることを確認したい場合は、@validatorデコレーターを使用してカスタム検証関数を定義できます。

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

この例では、age_must_be_positive年齢が正の整数であることを検証するメソッドを定義します。

要約する

Pydanticは、データの検証と解析のための強力な Python ライブラリです。これにより、データ モデルの定義、データの検証、エラーの処理、検証ルールのカスタマイズが簡単に行えます。Web アプリケーション、API、コマンド ライン ツール、またはその他の種類の Python アプリケーションを構築する場合、Pydanticデータをより簡単に処理するのに役立ちます。この記事が皆さんの入門にPydantic役立つことを願っています。

おすすめ

転載: blog.csdn.net/Tester_muller/article/details/132904614