【发布时间】:2014-06-11 19:55:27
【问题描述】:
我正在使用 validictory 来验证附加的 JSON 数据和架构。 工作至今。
然而,数据字典可以有任意的字符串键(除了'bp'之外)。这里模式中的键“bp”是硬编码的……它可以是给定列表中的字符串(字符串的枚举)。如何在此处为字典的“第一级”添加枚举定义。
import json
import validictory
data = {'bp': [{'category': 'bp',
'created': '2013-03-08T09:14:48.148000',
'day': '2013-03-11T00:00:00',
'id': 'dc049c0e-d19a-4e3e-93ea-66438a239712',
'unit': 'mmHg',
'value': 147.0,
'value2': 43.0}]}
schema = {
"type":"object",
"properties":{
"bp": {
"type":"array",
"required":False,
"items":
{
"type":"object",
"required":False,
"properties":{
"category": {
"type":"string",
"default": "bp",
"required":False
},
"created": {
"type":"string",
"default": "2013-03-08T09:14:48.148000",
"required":False
},
"day": {
"type":"string",
"default": "2013-03-11T00:00:00",
"required":False
},
"id": {
"type":"string",
"default": "dc049c0e-d19a-4e3e-93ea-66438a239712",
"required":False
},
"unit": {
"type":"string",
"default": "mmHg",
"required":False
},
"value2": {
"type":"number",
"default":43,
"required":False
},
"value": {
"type":"number",
"default":147,
"required":False
}
}
}
}
}
}
validictory.validate(data,schema)
【问题讨论】:
-
你能告诉我们如何重现这个问题吗?我现在没有看到。
-
@jsalonen:问题是如果顶级密钥与
bp不同,OP 想要验证输入。我觉得问题描述已经够清楚了,有 JSON-schema 经验的人应该可以帮忙。 -
这似乎是您上一个问题的后续。如果您在学习 JSON Schema 时遇到更普遍的问题,您可以通过 JSON Schema Google Group 放弃。如果有人在那里,还值得检查freenode 上的#json-schema。
标签: python validation jsonschema