PYDANIC枚举字段不会转换为字符串 [英] Pydantic enum field does not get converted to string
本文介绍了PYDANIC枚举字段不会转换为字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将类中的一个字段限制为枚举。然而,当我尝试从类中获取词典时,它不会被转换为字符串。相反,它保留枚举。我检查了pydantic documentation,但找不到与我的问题相关的任何内容。
此代码代表我实际需要的内容。
from enum import Enum
from pydantic import BaseModel
class S(str, Enum):
am='am'
pm='pm'
class K(BaseModel):
k:S
z:str
a = K(k='am', z='rrrr')
print(a.dict()) # {'k': <S.am: 'am'>, 'z': 'rrrr'}
我正在尝试让.dict()方法返回{‘k’:‘am’,‘z’:‘rrrr’}
推荐答案
您需要使用model config的use_enum_values
选项:
是否使用枚举的
use_enum_values
value
属性填充模型,而不是原始枚举。如果要在以后序列化model.dict()
(默认值:False
),这可能很有用
from enum import Enum
from pydantic import BaseModel
class S(str, Enum):
am='am'
pm='pm'
class K(BaseModel):
k:S
z:str
class Config:
use_enum_values = True # <--
a = K(k='am', z='rrrr')
print(a.dict())
这篇关于PYDANIC枚举字段不会转换为字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文