下面的代码已修改from the Pydantic documentation
我想知道如何更改BarModel
和FooBarModel
,以便它们接受分配给m1
的输入。我曾尝试使用__root__
和Dict[str, BarModel]
等语法,但无法找到神奇的组合
from pydantic import BaseModel
class BarModel(BaseModel):
whatever: float
foo: str
class FooBarModel(BaseModel):
banana: str
bar: BarModel
m = FooBarModel(banana='a', bar={'whatever': 12.3, 'foo':'hello'})
m1 = FooBarModel({
'a':{'whatever': 12.3, 'foo':'hello'},
'b':{'whatever': 12.4, 'foo':'bye'}
})
print(m.dict()) # returns a dictionary:
print(m1.dict()) # TypeError
最终的解决方案将部署在FastAPI上下文中
如果您所要做的只是在另一个模型中有一个
BarModel
字典,那么这就回答了您的问题:你已经找到了你的魔法组合,但你还没有意识到
这运行时没有任何错误
请注意,我们还有香蕉,如果您想丢弃它,只需删除即可
如果您想使用纯类型和一些静态分析器,您的示例将对此进行评估
但实际上你想要的是这个
相关问题 更多 >
编程相关推荐