高度简化的 json
{
"tariffOptions": "qwertyTest,qwerty,test"
}
qwertyTest、qwerty、test - 这些都是可能的值,它们可以按任何顺序定位
可能有全部,也可能有一个/两个,或者该字段可能会丢失
您需要检查字符串是否仅包含有效值
我试图这样解决它,但它不起作用
class TariffOptions(StrEnum):
qwerty_test = 'qwertyTest'
qwerty = 'qwerty'
test = 'test'
class Data(Base):
tariff_options: Optional[TariffOptions] = None
在这里你本质上
tariff_options
应该得到一个对象列表TariffOptions
,而不是Optional
.您需要准备源数据,用逗号将其拆分为列表,然后将其解析为枚举列表。您可以使用装饰器在方法内分割字符串
@model_validator(mode='before')
(请参阅模型验证器) - 它以字典的形式接收 json,您可以更正此字典并从此方法返回它:结论:
如果您添加枚举中没有的内容,例如:
就会出现这样的错误: