我正在以json文档的形式处理数据输入。 这些文档需要具有某种格式,如果它们不符合要求,则应忽略它们。我目前正在使用一个杂乱的'if thens'列表来检查json文档的格式。
我一直在尝试使用不同的python json-schema库,这可以正常工作,但是我仍然可以使用模式中没有描述的密钥提交文档,这对我来说没用。
虽然我期望它,但这个例子不会产生异常:
#!/usr/bin/python
from jsonschema import Validator
checker = Validator()
schema = {
"type" : "object",
"properties" : {
"source" : {
"type" : "object",
"properties" : {
"name" : {"type" : "string" }
}
}
}
}
data ={
"source":{
"name":"blah",
"bad_key":"This data is not allowed according to the schema."
}
}
checker.validate(data,schema)
我的问题有两个:
谢谢,
杰
答案 0 :(得分:9)
添加"additionalProperties": False
:
#!/usr/bin/python
from jsonschema import Validator
checker = Validator()
schema = {
"type" : "object",
"properties" : {
"source" : {
"type" : "object",
"properties" : {
"name" : {"type" : "string" }
},
"additionalProperties": False, # add this
}
}
}
data ={
"source":{
"name":"blah",
"bad_key":"This data is not allowed according to the schema."
}
}
checker.validate(data,schema)