Проверка структуры данных python с помощью Validator (или чего-то подобного)

Я имею дело с вводом данных в форме документов json. Эти документы должны иметь определенный формат, если они не соответствуют требованиям, их следует игнорировать. В настоящее время я использую беспорядочный список «if thens», чтобы проверить формат документа json.

Я немного экспериментировал с разными библиотеками json-schema python, которые работают нормально, но я все еще могу отправить документ с ключами, не описанными в схеме, что делает его бесполезным для меня.

Этот пример не генерирует исключение, хотя я ожидал этого:

#!/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)

У меня двоякий вопрос:

  • Я что-то упускаю из виду в определении схемы?
  • Если нет, есть ли другой легкий способ подойти к делу? это?

Спасибо,

Джей

10
задан jruizaranguren 11 September 2014 в 17:51
поделиться