Pydantic:动态字段名和结构



我目前正在使用Pydantic实现对讲机数据模型上的操作。

许多对讲机模型实现的对象列表如下:

"contacts":{
"type": "contact.list"
"contacts": [
Contact1,
Contact2,
…
]
}

对于其他一些对象列表,我们也有相同的逻辑。

如何定义一个动态的泛型Pydantic基类来管理它?

我首先想到:

class BaseList(BaseModel):
type: str
???
@validator('type')
def check_type(cls, v):
assert v.endswith(".list")
return v

然后在我的父模型中使用如下:

class ParentModel(BaseModel):
contacts: BaseList[Contact]

但是我不知道如何管理动态字段名和它的嵌套关联键。

谢谢你的帮助!

import typing
class Contact(object):    pass

class BaseModel(object): pass

class ContactList(BaseModel):
type: str
contacts: typing.List[Contact]

不确定它是否是你正在寻找的?typing.List[SomeType]