Pydantic v2 RootModel — сложная структура данныхPython

Программы на Python
Ответить
Anonymous
 Pydantic v2 RootModel — сложная структура данных

Сообщение Anonymous »

Я пытаюсь использовать RootModel от Pydantic для отображения сложной структуры данных.

Код: Выделить всё

relations = dict(
r2 = dict(
index = 2,
conditions = [
dict(
destination=7,
eq=dict(
index = 2,
value = True,
),
),
dict(
destination = 3,
neq = dict(
index = 2,
value = True
)
)
]
)
)
Eq и neq означают «равно» и «не равно» в надежде добавить больше операторов в качестве ключей.
Есть ли способ сделать это более простым способом.

Код: Выделить всё

class NodeValue(BaseModel):
index: int
value: Any

class NewCondition(BaseModel):
destination: int
__root__: Dict[str, NodeValue]

class Relationship(BaseModel):
index: int
conditions: List[NewCondition]

class Relationships(RootModel):
root: Dict[str, "Relationship"]
Это была моя попытка, но, конечно, она была отклонена компилятором и это справедливо.
Ключ назначения обязателен, а остальные ключи являются динамическими.
Это сложная задача, но был бы благодарен за любую информацию.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... -structure
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»