1. 基础数据类型扩展
1 | from datetime import datetime, time, timedelta |
- UUID:通用唯一标识符,在请求/响应中以字符串形式处理
- datetime:支持
datetime.datetime(ISO 8601格式字符串)、datetime.date(日期字符串)、datetime.time(时间字符串) - timedelta:时间间隔类型,响应中转换为总秒数(float类型)
2. 集合与二进制类型
1 | from pydantic import BaseModel |
- frozenset:请求时自动去重转换为集合,响应时转为列表
- bytes:二进制数据,在请求/响应中按base64字符串处理
- Decimal:高精度数值类型,处理方式与float相同
3. 类型特性说明
1 |
|
- 自动数据转换:列表↔集合转换时自动处理重复项
- 模式验证:生成JSON Schema时自动添加
uniqueItems约束 - 文档支持:Swagger UI自动展示各类型的示例格式
4. 使用注意事项
- 类型优先级:复杂类型会覆盖基础类型验证规则(如
datetime优先于str) - 兼容性要求:客户端需按指定格式传递数据(如时间必须符合ISO 8601)
- 精度处理:
Decimal类型建议配合round()使用避免浮点误差