01. 프롬프트
T
Two_Jay
from datetime import datetime
from pydantic import BaseModel, PositiveInt
# User 클래스는 사용자 데이터를 검증하고 변환하기 위한 모델입니다.
class User(BaseModel):
id: int # 사용자 ID (필수 정수형 값)
name: str = 'John Doe' # 기본값이 제공되는 사용자 이름
signup_ts: datetime | None # 가입 시간 (옵션 값)
tastes: dict[str, PositiveInt] # 취향 정보를 담은 딕셔너리, 값은 양의 정수여야 함
# 외부에서 입력된 데이터, 다양한 타입과 형식을 가짐
external_data = {
'id': 123,
'signup_ts': '2019-06-01 12:22', # 문자열로 표현된 날짜
'tastes': {
'wine': 9, # 유효한 정수 값
b'cheese': 7, # 바이트 문자열 키 (자동 변환됨)
'cabbage': '1', # 문자열 숫자 (양의 정수로 변환됨)
},
}
# User 모델을 사용하여 데이터를 검증하고 변환
user = User(**external_data)
print(user.id)
#> 123
print(user.model_dump())
# {
# 'id': 123,
# 'name': 'John Doe',
# 'signup_ts': datetime.datetime(2019, 6, 1, 12, 22),
# 'tastes': {'wine': 9, 'cheese': 7, 'cabbage': 1},
# }