如何访问 python 字典键作为 pydantic 模型字段

How to access a python dictionary keys as pydantic model fields

我无法弄清楚如何使用 pydantic 模型属性而不是直接在字典上使用 get 来访问字典键。

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

def some_function(data: Person):
    abc=data.name
    print(abc)


person={'name':'tom','age':12}
some_function(person)

我得到:AttributeError: 'dict' object has no attribute 'name'

基本上,我需要将一个字典传递给一个函数,该函数将作为 Pydantic 模型类型接收,然后我希望能够使用 . (dot) operator 访问传递的字典的内容。我已经看到类似的实现,但我不知道为什么它对我不起作用。

这可能吗?

您需要先将您的字典转换为 pydantic class,

some_function(Person(**person))

some_function(Person.parse_obj(person))