问题描述
数据:
xlrd.biffh.XLRDError: Unsupported format,or corrupt file: Expected BOF record; found
模式:
{
"dynamic_key_1": {
"key1": "value1"
"id": "dynamic_key_1"
},"dynamic_key_2": {
"key1": "value2"
"id": "some_random"
}
}
如何使用json模式验证{
"patternProperties": {
"^[^{}\"/\\\\]+$": {
"type": "object","required": [
"id"
],"properties": {
"id": {
"type": "string"
// ... validate with key
}
}
}
}
}
的值是否等于id
。
在上述情况下,key
将通过而dynamic_key_1
将通过测试。
解决方法
除非您事先知道所有可能的值,否则无法在JSON模式中执行此操作。您不能动态地将实例中的数据用作架构中的某种模板。
,我确实找到了一种方法来做到这一点。使用 patternNames
正则表达式进行验证。
...
"propertyNames": {
"pattern": "[A-Za-z][A-Za-z0-9_-]*$"
},"patternProperties": {
"^[^{}\"/\\\\]+$": {
"type": "object","required": [
"id"
],"properties": {
"id": {
"type": "string"
// ... validate with key
}
}
}
}
...