Проект jsonschema
делает именно это, проверяет структуры данных Python на соответствие действующей схеме JSON:
from jsonschema import validate
validate(obj, schema)
Возвращает None
, когда схема действительна, и вызывает исключение, когда это не так. Если вы должны иметь логическое значение, используйте:
import jsonschema
def is_valid(obj, schema):
try:
jsonschema.validate(obj, schema)
except jsonschema.ValidationError:
return False
else:
return True
Вам необходимо использовать допустимые ограничения схемы JSON. Для целочисленных значений ограничивает диапазон , если ваше значение должно соответствовать границам, например.
Словарь {"value": 300}
- это объект JSON с одним ключом, где этот единственный ключ является целым числом с нижней границей, поэтому определите его как схему JSON:
schema = {
"type": "object",
"properties": {
"value": {
"type": "integer",
"minimum": 235,
"exclusiveMinimum": True
}
}
}
Эта схема проверяет ваш пример значения:
>>> import jsonschema
>>> def is_valid(obj, schema):
... try:
... jsonschema.validate(obj, schema)
... except jsonschema.ValidationError:
... return False
... else:
... return True
...
>>> schema = {
... "type": "object",
... "properties": {
... "value": {
... "type": "integer",
... "minimum": 235,
... "exclusiveMinimum": True
... }
... }
... }
>>> is_valid({'value': 300}, schema)
True
>>> is_valid({'value': 1}, schema)
False
Прочитайте Понимание схемы JSON для великолепного учебника о том, как писать такие схемы.