Library needed: pip install jsonschema
Pypi: https://pypi.python.org/pypi/jsonschema
https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft4Validator
jsonschema.validate(instance, schema, cls=None, *args, **kwargs)[source]
Parameters:
- instance – the instance to validate
- schema(dict) – the schema to validate with
- cls – an IValidator class that will be used to validate the instance.
If the cls argument is not provided, two things will happen in accordance with the specification. 1> if the schema has a $schema property containing a known meta-schema then the proper validator will be used. The specification recommends that all schemas contain schema properties or this reason. 2> If no schema property is found, the default validator class is Draft4Validator.
validate() will first verify that the provided schema is itself valid, since not doing so can lead to less obvious error messages and fail in less obvious or consistent ways. If you know you have a valid schema already or don’t care, you might prefer using the validate() method directly on a specific validator (e.g. Draft4Validator.validate()).
Example 1:
#-*- coding: UTF-8 -*-
from jsonschema import validate
schema = {
"type" : "object",
"properties" : {
"price" : {"type" : "null"},
"name" : {"type" : "string"}
}
}
instance = {"name" : "Eggs", "price" : None}
validate(instance, schema)
#validate(instance, schema, Draft4Validator)
Example 2:
#-*- coding: UTF-8 -*-
from jsonschema import validate
import json
f = file("jsonSchema.json")
jschema = json.load(f)
f.close()
jstr = '{"name": "00_sample_case1","description": "an example."}'
validate(json.loads(jstr), jschema)
Example 3: Using the validate() directly
#-*- coding: UTF-8 -*-
from jsonschema import validate
from jsonschema import Draft4Validator
schema = {
"type" : "object",
"properties" : {
"price" : {"type" : "null"},
"name" : {"type" : "string"}
}
}
instance = {"name" : "Eggs", "price" : None}
Draft4Validator(schema).validate(instance)
Example 4: Validate the given schema against the validator’s META_SCHEMA.
from jsonschema import Draft4Validator
schema = {
"$schema": "http://json-schema.org/schema#",
"type": "object",
"properties": {
"name": {"type": "string"},
"email": {"type": "string"},
},
"required": ["email"]
}
Draft4Validator.check_schema(schema)