简介
我们之前介绍过使用pydantic
验证数据,比如校验数据的格式等,但是在我们的日常工作中,还有一种数据是需要我们验证的,比如时间数据,时间数据不同于字符串,列表等数据,与他们的验证不一样,本文就来为大家介绍一下pydantic
如何验证时间数据。
datetime时间类型处理
首先,datetime
有以下不同的数据:
- datetime, 现有datetime对象
- int或float,假定为 Unix 时间,即自 1970 年 1 月 1 日以来的秒数(if >= -2e10 or <= 2e10))或毫秒 (if < -2e10or > 2e10)
- str, 则类似:YYYY-MM-DD[T]HH:MM[:SS[.ffffff]][Z or [±]HH[:]MM]]]int或float作为字符串(假定为 Unix 时间)
处理datetime
数据,代码如下:
from datetime import datetime
from pydantic import BaseModel, validator
class Book(BaseModel):
id: int
name: str
create_time: datetime = None
@validator('create_time', pre=True, always=True)
def set_create_now(cls, v):
return v or datetime.now()
# 1.传datetime 对象
book1 = Book(id=1, name='muller', create_time=datetime.now())
print(book1.json())
# 2.传字符串
book2 = Book(id=2, name='theshy', create_time="2023-10-24T12:00:10.707257")
print(book2.json())
# 3.Unix 时间戳
book2 = Book(id=3, name='langx', create_time=1645506606260)
print(book2.json(