如何使用 cerberus 禁止 json 值中的某些单词

How to prohibit certain words in a json value with cerberus

假设我有这个 json:

{"name": "John"}

我想限制 json 包含子字符串“my name is”,所以如果我收到:

{"name": "my name is John"}

Cerberus 会告诉我 json 不正确,我可以显示正确的输出,到目前为止我已经尝试了 "forbidden" 字段但它不起作用,因为 forbidden 只采用确切的短语,这就是我到目前为止的 cerberus 验证方式:

{
  "name":{
    "type": "string",
    "minlength":1,
    "forbidden":["my name is"],
  }
}

谢谢!

看起来你会想要使用 check_with 和一个简单的函数来禁止你想要排除的内容,例如

def cleanName(field, value, error):
    if 'my name is' in value:
        error(field, 'error message')