You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

jacobs-json-schema

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jacobs-json-schema

Another JSON-Schema Validator

0.4.2
pipPyPI
Maintainers
1

jacobs-json-schema

CircleCI Coverage Status Documentation Status

This package is yet another JSON Schema validator. I wrote it because I needed something small to run in Python 3.5.

Most data validation features are supported without any dependencies (see "Conformance").

Documentation

Is available at Read the Docs.

Usage

Before using this library, the schema dna data must already be parsed into a Python data structure. This can be as simple as using json.loads().

from jacobsjsonschema.draft7 import Validator

schema = { "type": "string" }
validator = Validator(schema)

data = "Hello world"
validator.validate(data)
# Will throw if there are any validation errors

Lazy error reporting is also supported. This means that as much of the data as possible is evaluated, and errors are collected instead of raising an exception.

schema = { "type": "string" }
validator = Validator(schema, lazy_error_reporting=True)

data = "Hello world"
if validator.validate(data):
    print("Validated")
else:
    for error in validator.get_errors():
        print(error)

Conformance

There are two ways of running the validator:

  • Passing a JSON-deserialized Python dictionary as the schema. There are no additional external dependencies needed. Straightforward $ref references (no usage of $id) within the same schema are supported.
  • Parse the schema using utility from the jacobs-json-doc python package, and pass the wrapped schema to the validator. Several external dependencies are required. Full $id and $ref functionality is supported.

Where "Mostly" is specified, it passes all tests excluding those from ref.json, id.json, defintions.json, refRemote.json and unknownKeyword.json.

SpecificationStandaloneusing jacobs-json-doc
Python Version3.5+3.7+
Draft-04MostlyPassed
Draft-06MostlyPassed
Draft-07MostlyPassed
Draft-2019-09UntestedUntested
Draft-2020-12UntestedUntested

License

MIT License. If you modify the source, please publish your modifications.

Keywords

json schema

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts