对于如下所示的Pydantic类,我希望通过应用replace
操作来转换foo
字段:
from typing import List
from pydantic import BaseModel
class MyModel(BaseModel):
foo: List[str]
my_object = MyModel(foo="hello-there")
my_object.foo = [s.replace("-", "_") for s in my_object.foo]
创建对象时,如何在类中正确执行replace
操作?如果没有Pydantic,我只会在__init(self, foo)
内实现,但是由于Pydantic创建了自己的__init__
实现,我不知道如何准确地进行
使用pydantic BaseModel
似乎您必须重写basemodels init方法,如下所示:
使用Pydantic数据类
。。。或者您也可以将其转换为pydantic数据类,并使用pydantic提供的post init dunder在实例化时执行其他操作。e、 g:
使用
@validator
装饰器(在本例中使用each_item=True
选项,因为我们希望验证器查看列表中的每个项目,而不是列表本身):或者,如果您更喜欢数据类:
相关问题 更多 >
编程相关推荐