Python源码示例:jsonschema.Draft6Validator()
示例1
def validate(spec, schema_name, version=None):
schema = load_schema(schema_name, version=version)
try:
resolver = jsonschema.RefResolver(
base_uri='file://{0:s}'.format(
pkg_resources.resource_filename(__name__, 'schemas/')
),
referrer=schema_name,
store=SCHEMA_CACHE,
)
validator = jsonschema.Draft6Validator(
schema, resolver=resolver, format_checker=None
)
return validator.validate(spec)
except jsonschema.ValidationError as err:
raise InvalidSpecification(err)
示例2
def validate_json_schema(input_filepath: str):
"""
Validates the input json schema using validation meta-schema provided in
`validation_filepath.json` according to the specification in
`http://json-schema.org`.
If the tested json is not valid, a `jsonschema.exceptions.ValidationError`
is thrown.
Args:
input_filepath: Filepath of the json schema to be validated
"""
validation_file_path = os.path.normpath(
os.path.join(os.path.dirname(__file__), 'validation_schema.json'))
with open(validation_file_path, 'r') as validation_json_file:
validation_schema = json.loads(validation_json_file.read())
with open(input_filepath, 'r') as input_json_file:
input_schema = json.loads(input_json_file.read())
jsonschema.Draft6Validator(validation_schema).validate(input_schema)
示例3
def load_json_schema(path):
'''
Load a JSON schema from the augur included set of schemas
(located in augur/data)
'''
try:
schema = json.loads(resource_string(__package__, os.path.join("data", path)))
except json.JSONDecodeError as err:
raise ValidateError("Schema {} is not a valid JSON file. Error: {}".format(path, err))
# check loaded schema is itself valid -- see http://python-jsonschema.readthedocs.io/en/latest/errors/
try:
jsonschema.Draft6Validator.check_schema(schema)
except jsonschema.exceptions.SchemaError as err:
raise ValidateError("Schema {} is not a valid JSON file. Error: {}".format(path, err))
return jsonschema.Draft6Validator(schema)
示例4
def _get_validator(cls, schema):
"""
Helper to return a jsonschema.IValidator instance for the given JSON schema object.
"""
return jsonschema.Draft6Validator(schema)