如何从指定Pydantic模型代码中获取字段名的字符串形式而非字段值?
当然可以啦!针对你写的这段Pydantic代码,想要获取字段name的字符串形式(也就是字段名本身,不是它对应的值),有好几种简单实用的方法:
获取Pydantic模型字段名的具体方法
直接通过模型的字段信息字典获取
Pydantic模型会把所有字段的元信息存在__fields__属性里(Pydantic v2版本官方更推荐用model_fields),这是一个字典,键就是字段的名称字符串。你可以根据需求选择两种方式获取:from pydantic import BaseModel class User(BaseModel): id: int name = 'Jane Doe' # 方法1:已知字段名时,直接写字符串(最直接) field_name = "name" # 方法2:通过字段对象提取名称(适合动态场景) field_obj = User.__fields__['name'] field_name = field_obj.name # 这里得到的就是字符串"name"从已创建的实例对象出发获取
如果你已经生成了模型实例,也可以直接通过实例访问字段信息:user = User(id='123', name='John') # 实例同样能访问__fields__(v1)或model_fields(v2) field_name = user.__fields__['name'].name遍历模型的所有字段名
要是你想批量获取模型的所有字段名称,直接遍历字段字典的键即可:for field_name in User.__fields__.keys(): print(field_name) # 会依次输出"id"和"name"
内容的提问来源于stack exchange,提问作者user14142616
相关产品推荐
相关产品推荐

