Pydantic: использование атрибута пространства имен (точечного) в качестве словарного ключа в модели? ⇐ Python

Программы на Python
Anonymous
Pydantic: использование атрибута пространства имен (точечного) в качестве словарного ключа в модели?

Сообщение Anonymous »

Вот надуманный пример того, что я пытаюсь сделать.

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

class MyModel(BaseModel):
foo: str
bar.baz: str

'bar.baz': str
^ Syntax Error: illegal target for annotation
В моем случае мне нужно установить/получить атрибут, например «bar.baz». Этот атрибут должен взаимодействовать с внешней системой за пределами Python, поэтому он должен оставаться пунктиром. Есть ли способ добиться этого с помощью pydantic и/или классов данных? Атрибут должен быть доступным по подписке, поэтому я хочу иметь возможность делать что-то вроде mymodel['bar.baz'].
Есть идеи о том, как я могу этого добиться?
Спасибо
Я пытался использовать NamedTuple для определения bar и даже универсального класса, но, похоже, не смог обойти проблему того, что это незаконно в мире введите аннотации.

Подробнее здесь: https://stackoverflow.com/questions/756 ... thin-model

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