Python jsonschema未标记日期时间错误

Python jsonschema未标记日期时间错误,python,json,validation,jsonschema,Python,Json,Validation,Jsonschema,我在理解如何使用jsonschema验证数据时遇到了一些问题,这是在我开始尝试验证日期时间值时发现的 下面的代码应该引发ValidationError异常,但它不会。这是我能想到的最短的例子 def val(data, schema): try: jsonschema.validate(data, schema) except jsonschema.ValidationError as e: return e.args[0] result = v

我在理解如何使用
jsonschema
验证数据时遇到了一些问题,这是在我开始尝试验证日期时间值时发现的

下面的代码应该引发
ValidationError
异常,但它不会。这是我能想到的最短的例子

def val(data, schema):
    try:
        jsonschema.validate(data, schema)
    except jsonschema.ValidationError as e:
        return e.args[0]

result = val('2008-09-0X22:47:31-07:00', {'format': 'date-time'})
print(result)
对于任何字符串值,结果都是
None

val(42, {'type': 'string', 'format': 'date-time'})
引发异常“42不是'string'类型”。如果省略
'type'
模式项,并且验证器再次返回
None
,则不会发生这种情况

在我看来,我对如何使用软件包有一些基本的误解。

默认情况下,
格式
]的验证不强制执行,但也可以通过将格式检查对象挂接到
IValidator
来启用验证

然后,它显示了如何执行此操作的示例:

validate(
    "-12", {"format" : "hostname"}, format_checker=FormatChecker(),
)
因此,您需要做的就是:

jsonschema.validate('2008-09-0X22:47:31-07:00', {'format': 'date-time'}, format_checker=jsonschema.FormatChecker())

请注意,如页面底部所述,仅当您还安装了
strict-rfc339
软件包时,
date-time
格式才有效。

谢谢<已安装代码>strict-rfc3339。实际上,我正在尝试替换由
connexion
包完成的验证,因此这可能是一项相当大的工作。