ピダンティックな検証
型強制とモデル検証。
概要
Pydantic を使用すると、Python データクラスが基本的に型のないネットワーク構成を型付きの表現に自動的に変更できます。
これにより、堅牢な型制約を使用してシステム状態が保護されます。
コードと実行の出力
検証ペイロードの厳密なスキーマ ユーザー モデルを宣言します。
models.py
エディターで試してみるfrom pydantic import BaseModel, EmailStr, Field
from typing import List, Optional
import json
class User(BaseModel):
id: int
name: str = Field(min_length=2)
email: EmailStr
tags: List[str] = []
is_active: bool = True
# Simulating an API response with mixed types
incoming_data = {
"id": "123", # string gets coerced to int
"name": "Alice",
"email": "alice@example.com",
"tags": ("python", "developer") # tuple gets coerced to list
}
# Validate and instantiate
user = User(**incoming_data)
print("--- Validated Pydantic Model ---")
print(repr(user))
print("\n--- Exported to JSON ---")
print(user.model_dump_json(indent=2))端子出力
--- Validated Pydantic Model ---
User(id=123, name='Alice', email='alice@example.com', tags=['python', 'developer'], is_active=True)
--- Exported to JSON ---
{
"id": 123,
"name": "Alice",
"email": "alice@example.com",
"tags": [
"python",
"developer"
],
"is_active": true
}段階的な実装
- APIエンドポイント保護
- 構成スキーマの検証
- データベースインターフェース