【发布时间】:2021-10-09 05:54:02
【问题描述】:
从下面的代码中,有没有办法可以将名称作为字符串而不是值,而是字段名称本身?
from pydantic import BaseModel
class User(BaseModel):
id: int
name = 'Jane Doe'
user = User(id='123', name='John')
【问题讨论】:
从下面的代码中,有没有办法可以将名称作为字符串而不是值,而是字段名称本身?
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']
【讨论】: