使用Cerberus要求词典列表中的词典项包含特定值

时间:2019-07-26 15:43:04

标签: python-2.7 cerberus

我有一个词典列表,我想验证列表中至少一个词典是否包含某些值。

我尝试了如图所示的“包含”以及“项目”规则,但是cerberus抱怨dict是无法散列的类型。

my_schema = """{ "alist": {
    "type": "list",
    "contains": { "x":"mustHave" },
    "schema": {
      "type": "dict",
      "schema": {
        "x": { "type": "string" },
        "y": { "type": "string" }
      }
    }
  }
}"""
data = { 'alist': [{'x':'mustHave', 'y':'this'},
                   {'x':'dontCare', 'y':'about that'}
                  ]   
       }   
schema = ast.literal_eval(my_schema)
v = cerberus.Validator()
v.validate(data,schema)

我希望对此进行验证,并且在删除{'x':'mustHave','y':'this'}字典时,验证应该会失败。

0 个答案:

没有答案