Python pydantic 模型获取字段作为字符串

Python pydantic model get field as string

从下面的代码中,有没有一种方法可以将名称作为字符串,而不是值,而是字段名称本身?

from pydantic import BaseModel

class User(BaseModel):
    id: int
    name = 'Jane Doe'

user = User(id='123', name='John')

您可以通过 __fields__ 属性获取字段列表:

User.__fields__
# or
user.__fields__
# {
#     'id': ModelField(name='id', type=int, required=True),
#     'name': ModelField(name='name', type=str, required=False, default='Jane Doe')
# }

因此,字段名称列表通过:

list(User.__fields__.keys()))
# or
list(user.__fields__.keys()))
# ['id', 'name']