一,代码:
@router.get("/trans", summary="演示字典和模型的互相转换")
async def get_trans(request: Request):
# 创建模型
user = UserResponse(
id=3,
username='aaa',
nickname='老刘'
)
# 模型转字典
dict = user.model_dump()
print(dict)
# 创建字典
data = {"id": 5, "username": "Charlie", "nickname": '谢广坤'}
# 字典转模型, 校验并转换
user_obj = None
try:
user_obj = UserResponse.model_validate(data)
print(user_obj)
except Exception as e:
print(f"数据格式错误: {e}")
# 字典转模型, 直接解包
user_obj2 = UserResponse(**data)
print(user_obj2)
return {
"dict": dict,
"obj": user_obj,
"obj2": user_obj2,
}
二,测试效果:
![image]()