Я пытаюсь имитировать аналогичное поведение интерфейса машинописных текстов с произвольными именами ключей для модели pydantic
, но у меня возникают некоторые проблемы.
Учтите следующее в TS: *
Возможно ли добиться этого в pydanti c?
Вот мой пример кода python:
from pydantic import BaseModel, parse_obj_as
from typing import Optional
class Values(BaseModel):
Value: str
Type: str
class MessageAttributes(BaseModel):
ArbitraryKey: Optional[Values]
class Mymodel(BaseModel):
MessageAttributes: Optional[MessageAttributes]
data = {"MessageAttributes": {"ArbitraryKey": {"Type": "String", "Value": "TestString"}}}
parsed = parse_obj_as(Mymodel, data)
print(parsed.MessageAttributes.ArbitraryKey.Value)
# TestString
В этом примере свойство ArbitraryKey
может быть чем угодно. Но я не могу жестко запрограммировать все возможные имена клавиш. Например, вместо ArbitraryKey
, что, если бы имя ключа было SomeTestKey
?
Я знаю, что могу использовать extra = 'allow
в Config
, но это не даст синтаксиса точки, который я могу получить, когда используя parse_obj_as
Мой вопрос, если возможно, могу ли я сделать что-то подобное [name: string]
в pydanti c для имен свойств?