SeouliteLab

파이썬 Pydantic 라이브러리: 데이터 검증 및 설정을 위한 간편한 도구 본문

프로그래밍

파이썬 Pydantic 라이브러리: 데이터 검증 및 설정을 위한 간편한 도구

Seoulite Lab 2024. 4. 1. 13:18

Pydantic은 Python에서 데이터 검증과 설정을 위한 라이브러리로, 데이터 모델을 정의하고 해당 모델에 대한 입력 데이터의 유효성을 검사할 수 있습니다. 이를 통해 코드의 안정성을 높이고 개발자가 예상치 못한 오류를 방지할 수 있습니다.

예제 1: 기본 사용법

from pydantic import BaseModel

class User(BaseModel):
    id: int
    username: str
    email: str

# 데이터 모델 생성
user_data = {"id": 1, "username": "john_doe", "email": "john@example.com"}
user = User(**user_data)

print(user)
# 출력 결과: User id=1 username='john_doe' email='john@example.com'

위 예제에서는 간단한 User 데이터 모델을 정의하고, 입력 데이터를 이 모델에 맞게 검증하여 인스턴스를 생성합니다.

예제 2: 선택적 필드와 기본값 설정

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float

# 데이터 모델 생성
item_data = {"name": "Laptop", "price": 1200.50}
item = Item(**item_data)

print(item)
# 출력 결과: Item name='Laptop' description=None price=1200.5

여기서는 선택적 필드인 description에 기본값을 설정하여 모델을 만듭니다.

예제 3: 데이터 변환 및 유효성 검사

from pydantic import BaseModel, ValidationError

class Address(BaseModel):
    city: str
    zip_code: str

class Person(BaseModel):
    name: str
    age: int
    address: Address

# 데이터 모델 생성 (유효하지 않은 경우)
try:
    person_data = {"name": "Alice", "age": 30, "address": {"city": "New York"}}
    person = Person(**person_data)
except ValidationError as e:
    print(e)
    """
    출력 결과:
    1 validation error for Person
    address -> zip_code
      field required (type=value_error.missing)
    """

# 데이터 모델 생성 (유효한 경우)
person_data_valid = {
    "name": "Alice",
    "age": 30,
    "address": {"city": "New York", "zip_code": "10001"}
}
person_valid = Person(**person_data_valid)

print(person_valid)
# 출력 결과: Person name='Alice' age=30 address=Address city='New York' zip_code='10001'

이 예제에서는 중첩된 데이터 모델을 사용하여 복잡한 데이터 구조를 검증하고, 유효성 검사 에러를 처리하는 방법을 보여줍니다.