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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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