【发布时间】:2021-01-09 13:14:08
【问题描述】:
如何验证某个类型是一个列表,并且它只包含未知数字的字符串元素?
我目前的解决方案是
'categories_id' : {'required' : False, 'type' : ['string','list']},
但它并不能解决问题,当您只提供一个字符串而不是列表时,它也会返回 True。
【问题讨论】:
标签: python string list validation cerberus
如何验证某个类型是一个列表,并且它只包含未知数字的字符串元素?
我目前的解决方案是
'categories_id' : {'required' : False, 'type' : ['string','list']},
但它并不能解决问题,当您只提供一个字符串而不是列表时,它也会返回 True。
【问题讨论】:
标签: python string list validation cerberus
问题'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)
【讨论】: