fastapi: pydantic模型与字典的互相转换

一,代码:

@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

 

posted @ 2026-07-26 15:56  刘宏缔的架构森林  阅读(11)  评论(0)    收藏  举报