我正在使用python-jsonschema进行json验证。我有一个对象,其本地化文本在rfc1766语言代码键中指定如下:
"Description": {
"en": "English Description",
"sv": "Swedish Description",
"fr": "French Description"
},
I've read in the documentation我可以使用“format”属性使用函数检查自定义格式。因此,我编写了一个方法,它将字符串作为参数,如果它是RFC1766语言字符串,则返回True。在
^{pr2}$但是,我找不到任何关于如何将此应用于对象键(而不是值)的验证的示例。在
这可能吗?在
我试过下面这样的方法,但没有成功
rfc1766_string_schema_v2 = {
'type': 'object',
'format': 'rfc1766lang',
'additionalProperties': False
}
我知道如果我有下面的json字符串,这会容易得多。不过,目前还不是一个选择。在
"Description": [{
"lan": "en",
"text": "Description in English"
}, {
"lan": "sv",
"name": "Description in Swedish"
}]
这是一个非常好且相关的问题,因为这实际上是proposed syntax for v5的一部分,所以官方的元模式也必须处理这个问题。在
JSON架构无法为对象键指定“格式”。JSON模式对对象键唯一支持的“validation”是
patternProperties
,它提供了一个正则表达式。在对于语言代码,您所能做的最好的事情可能是:
这将限制数据,使其只允许属性与该模式匹配-但恐怕这不是您要寻找的完整验证。在
相关问题 更多 >
编程相关推荐