【问题标题】:jsonschema Draft7 multiple custom types in pythonpython中的jsonschema Draft7多种自定义类型
【发布时间】:2023-03-17 02:40:02
【问题描述】:

我正在尝试向我的验证器添加几个自定义类型

目前我有一个可以验证日期类型。我想添加另一个来验证正整数

from datetime import date

date_checker = Draft7Validator.TYPE_CHECKER.redefine("date", lambda _, instance: isinstance(instance, date))
custom_validator = validators.extend(Draft7Validator, type_checker=date_checker)
validator = custom_validator(schema={"type": "date"})
validator.validate(config, schema)

如何向同一个验证器对象添加另一种不同的类型?

【问题讨论】:

    标签: python jsonschema json-schema-validator


    【解决方案1】:

    在玩了一些变化之后,我得到了这个工作。我不是 100% 确定这是否是最好的方法......但它有效

    date_checker = Draft7Validator.TYPE_CHECKER.redefine_many({
        "date": lambda _, instance: isinstance(instance, date),
        "pos_int": lambda _, instance: isinstance(instance, int) and instance >= 0
    })
    
    custom_validator = validators.extend(Draft7Validator, type_checker=date_checker)
    validator = custom_validator(schema)
    validator.validate(config)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2014-06-22
      • 2015-08-10
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多