Я хочу использовать JSONSCHEMA для проверки схем mongodb. MongoDb использует «bsontypes» вместо «types». Я пробовал этот код, но он не работает. Не могли бы вы помочь мне? Мой код основан на этом предложении: https://github.com/Julian/jsonschema/issues/586#issuecomment -525259765
import jsonschema
from jsonschema import Draft7Validator
from bson import ObjectId
def is_objectId(checker, instance):
return isinstance(instance, ObjectId)
type_checker = Draft7Validator.TYPE_CHECKER.redefine("objectId", is_objectId)
CustomValidator = jsonschema.validators.extend(Draft7Validator, type_checker=type_checker)
CustomValidator.VALIDATORS["bsonType"] = Draft7Validator.VALIDATORS["type"]
schema = {
"bsonType": "object",
"properties":{
"scan":{
"bsonType": "object",
"required": ["code"],
"properties":{
"code": {
"bsontype" : "string"
},
"device": {
"bsonType": "int"
}
}
}
}
}
dic = {
"scan" : {
"code": "hello",
"device": 34
}
}
CustomValidator.validate(dic,schema)