from datetime import date from typing import List from pydantic import BaseModel # Pydantic 的类叫 Model模型继承 BaseModel # Pydantic Python 的数据校验 数据模型库FastAPI 默认自带它 # 强制约束数据格式尽量帮你把输入转成你声明的类型转换失败抛校验异常 class User(BaseModel): #校验类必须继承自BaseModel上述代码中类User(BaseModel) id: int name: str John Doe # name: str不是普通 Python 类型提示pydantic 拿这个做校验规则 data_joined: date | None None # 结果可以是data类型若不传则为默认值None departments: List[str] | None None external_data { id: 123, name: 张三, data_joined: 2030-06-01, departments: [文体部, 办公室, 宣媒部], } # **叫字典解包语法,把字典里面每一对 key‑value拆开变成函数的关键字参数传给 User # 等价于 User(id123, data_joined2030‑06‑01, departments[A,B,C]) user User(**external_data) # user 是 Pydantic 模型对象实例就像类实例对象用 . 访问里面的字段值 print(user.id, user.name) # model_dump() 是 Pydantic v2 的内置方法 # 作用把 Pydantic 对象 → 转换成普通 Python 字典 # 转换为字典 print(user.model_dump())