PYDANIC枚举字段不会转换为字符串 [英] Pydantic enum field does not get converted to string

查看:0
本文介绍了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 configuse_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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆