2

我如何验证某个类型是一个列表,并且它只包含未知数字的字符串元素?

我目前的解决方案是

'categories_id' : {'required' : False, 'type' : ['string','list']},

但它并不能解决问题,True当您只提供一个字符串而不是列表时也会返回。

4

2 回答 2

1

问题中提到的架构'categories_id' : {'required' : False, 'type' : ['string','list']}使 Cerberus 检查categories_id字段是字符串或列表。因此,单个字符串将返回 true。

要让 Cerberus 检查categories_id包含任意数量项目的字符串列表,应使用以下模式

{'categories_id': {'required': False, 'type': 'list', 'schema': {'type': 'string'}}}

于 2021-03-05T06:59:11.847 回答
0

我还没有找到使用 的方法cerberus,但是没有任何模块应该很简单:

def validate(l):
    if isinstance(l, list):
        return all(isinstance(I, str) for i in l)
于 2021-01-09T13:41:19.677 回答