我正在使用python-jsonschema来进行json验证。我有一个对象,其中包含本地化文本,这些文本是使用rfc1766语言代码键指定的,如下所示:
"Description": {
"en": "English Description",
"sv": "Swedish Description",
"fr": "French Description"
},
我在文档中看到,我可以使用'format'属性来检查一种自定义格式,使用函数。因此,我编写了一个方法,它接受一个字符串作为参数,并在其为RFC1766语言字符串时返回True。
@_checks_drafts('rfc1766lang')
def rfc1766lang(instance):
"""some logic, return True if rfc1766"""
然而,我找不到任何关于如何应用此方法来对对象键进行验证的示例,而不是对值进行验证。
这种情况有可能吗?
我尝试了以下类似的方法,但没有成功:
rfc1766_string_schema_v2 = {
'type': 'object',
'format': 'rfc1766lang',
'additionalProperties': False
}
我知道如果我有以下格式的json字符串,这将更容易。但是,现在这不是一个选项。
"Description": [{
"lan": "en",
"text": "Description in English"
}, {
"lan": "sv",
"name": "Description in Swedish"
}]