아카이브

[Python] Library | 05. Pydantic 본문

Language/Python

[Python] Library | 05. Pydantic

Rayi 2025. 2. 16. 21:09

Pydantic은 파이썬의 타입들을 활용한 데이터 검증 라이브러리입니다.

 

주로 주어진 데이터의 오류를 찾고, 런타임에서도 타입 힌트를 제공하는 역할을 합니다.

 

Pydantic을 사용하면 파이썬의 객체를 TypeScript의 방식처럼 선언할 수 있습니다.

데이터 검증

Pydantic에서 제공하는 BaseModel 클래스를 상속하여 사용할 수 있습니다.

from pydantic import BaseModel

class User(BaseModel):
    name:       str                    # 문자열
    age:        int                    # 정수
    createdAt:  datetime               # 날짜
    dimensions: tuple[int, int]        # (정수, 정수)
    preference: Optional[str] = None   # 기본값 None인 문자열
    rating:     int | float            # 정수 또는 실수
    friends:    List[str] = []         # 기본값 []인 문자열[]

다양한 타입 정의

파이썬의 기본적인 타입뿐 만 아니라, Pydantic에서 정의한 특수한 타입들도 사용할 수 있습니다.

from pydantic import BaseModel, EmailStr
from pydantic_extra_types.currency_code import Currency

class currency(BaseModel):
    alpha_3: Currency // 통화 기호 ('KRW', 'USD', ...)

class Model(BaseModel):
    email: EmailStr // 이메일 형식('contact@mail.com')

 

예외 처리

이후 입력한 데이터가 지정한 데이터 조건에 위반될 경우,

pydantic의 ValidationError 값을 이용해 예외처리를 작성할 수 있습니다.

except ValidationError as e:
    logging.error(f"Validation error: {e.errors()}")
    return jsonify({"message": "Validation error", "errors": e.errors()}), 400

자세한 데이터 타입들에 대한 정보는 아래 문서에서 확인할 수 있습니다.

https://docs.pydantic.dev/latest/api/base_model/

 

BaseModel - Pydantic

Data validation using Python type hints

docs.pydantic.dev

 

728x90

'Language > Python' 카테고리의 다른 글

[Python] requirements.txt 파일 작성하기  (0) 2025.02.16
[Python] Library | 04. selenium  (0) 2024.01.28
[Python] Library | 03. tqdm  (0) 2023.06.10
[Python] Library | 02. lmdb  (0) 2023.06.03
[Python] Library | 01. functools  (0) 2023.05.12
Comments