pydantic - novel-suzukikeisuke/study GitHub Wiki
pydantic
- バリデーションや型ヒントを実装できる
- 入力ではなく、出力モデルの型と制約を保証するもの
具体例
from pydantic import BaseModel, EmailStr, Field
# Userモデル(型注釈)の定義
class User(BaseModel):
id: int # idは整数型
name: str = Field(..., min_length=2, max_length=50) # nameは文字列で、長さの制約あり
email: EmailStr # emailは正しいメールアドレス形式
age: int = Field(..., ge=18) # ageは整数で、18歳以上である必要がある
# 正しいデータの例
valid_data = {
"id": 1,
"name": "Alice",
"email": "[email protected]",
"age": 30
}
# モデルを使用してデータを検証
user = User(**valid_data)
print(user)
# 間違ったデータの例
invalid_data = {
"id": "abc", # idは整数型でなければならない
"name": "A", # 名前が短すぎる
"email": "invalid-email", # メールアドレスの形式が不正
"age": 15 # 年齢が18歳未満
}
# 検証の実行
try:
user = User(**invalid_data)
except ValueError as e:
print(e)
## 参考URL