我如何验证某个类型是一个列表,并且它只包含未知数字的字符串元素?
我目前的解决方案是
'categories_id' : {'required' : False, 'type' : ['string','list']},
但它并不能解决问题,True
当您只提供一个字符串而不是列表时也会返回。
我如何验证某个类型是一个列表,并且它只包含未知数字的字符串元素?
我目前的解决方案是
'categories_id' : {'required' : False, 'type' : ['string','list']},
但它并不能解决问题,True
当您只提供一个字符串而不是列表时也会返回。
问题中提到的架构'categories_id' : {'required' : False, 'type' : ['string','list']}
使 Cerberus 检查categories_id
字段是字符串或列表。因此,单个字符串将返回 true。
要让 Cerberus 检查categories_id
包含任意数量项目的字符串列表,应使用以下模式
{'categories_id': {'required': False, 'type': 'list', 'schema': {'type': 'string'}}}
我还没有找到使用 的方法cerberus
,但是没有任何模块应该很简单:
def validate(l):
if isinstance(l, list):
return all(isinstance(I, str) for i in l)