Validator class

class rapidjson.Validator(json_schema)
Parameters

json_schema – the JSON schema, specified as a str instance or an UTF-8 bytes instance

Raises

JSONDecodeError – if json_schema is not a valid JSON value

__call__(json)
Parameters

json – the JSON value, specified as a str instance or an UTF-8 bytes instance, that will be validated

Raises

JSONDecodeError – if json is not a valid JSON value

The given json value will be validated accordingly to the schema: a ValidationError will be raised if the validation fails, and the exception will contain three arguments, respectively the type of the error, the position in the schema and the position in the JSON document where the error occurred:

>>> validate = Validator('{"required": ["a", "b"]}')
>>> validate('{"a": null, "b": 1}')
>>> try:
...   validate('{"a": null, "c": false}')
... except ValidationError as error:
...   print(error.args)
...
('required', '#', '#')
>>> validate = Validator('{"type": "array",'
...                      ' "items": {"type": "string"},'
...                      ' "minItems": 1}')
>>> validate('["foo", "bar"]')
>>> try:
...   validate('[]')
... except ValidationError as error:
...   print(error.args)
...
('minItems', '#', '#')
>>> try:
...   validate('[1]')
... except ValidationError as error:
...   print(error.args)
...
('type', '#/items', '#/0')

When json is not a valid JSON document, a JSONDecodeError is raised instead:

>>> validate('x')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
rapidjson.JSONDecodeError: Invalid JSON