You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pydantic模型的model_dump()中获取不含Url(...)的字典?

用Pydantic的model_dump()直接获取纯URL字符串的字典

当你用HttpUrl作为模型字段类型时,默认调用model_dump()会返回Url对象而非纯字符串,想要直接拿到包含字符串URL的字典,有两种简单方法:

方法1:使用mode='json'参数(推荐)

直接给model_dump()传入mode='json'参数,它会按照JSON序列化的规则输出字典,自动把HttpUrl转换成对应的字符串格式:

from pydantic import BaseModel, HttpUrl

class MyModel(BaseModel):
    url: HttpUrl

model = MyModel(url="https://io.com")
print(f"model_dump(mode='json'): {model.model_dump(mode='json')}")

执行结果:

model_dump(mode='json'): {'url': 'https://io.com/'}

方法2:自定义字段序列化(适合特殊场景)

如果需要更个性化的处理,可以给字段加序列化器,把Url对象转成字符串:

from pydantic import BaseModel, HttpUrl, field_serializer

class MyModel(BaseModel):
    url: HttpUrl

    @field_serializer('url')
    def serialize_url(self, value: HttpUrl) -> str:
        return str(value)

model = MyModel(url="https://io.com")
print(f"model_dump(): {model.model_dump()}")

执行结果:

model_dump(): {'url': 'https://io.com/'}

第一种方法是最优解,不用额外写自定义逻辑,直接复用Pydantic内置的JSON序列化逻辑,简单高效。

内容的提问来源于stack exchange,提问作者Andrey Dmitriev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:25:12