Skip to main content

An implementation of JSON Schema validation for Python

Project description

jsonschema is an implementation of JSON Schema for Python (supporting 2.6+ including Python 3).

>>> from jsonschema import validate

>>> # A sample schema, like what we'd get from json.load()
>>> schema = {
...     "type" : "object",
...     "properties" : {
...         "price" : {"type" : "number"},
...         "name" : {"type" : "string"},
...     },
... }

>>> # If no exception is raised by validate(), the instance is valid.
>>> validate({"name" : "Eggs", "price" : 34.99}, schema)

>>> validate(
...     {"name" : "Eggs", "price" : "Invalid"}, schema
... )                                   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
ValidationError: 'Invalid' is not of type 'number'

Features

Release Notes

  • A simple CLI was added for validation

  • Validation errors now keep full absolute paths and absolute schema paths in their absolute_path and absolute_schema_path attributes. The path and schema_path attributes are deprecated in favor of relative_path and relative_schema_path.

Note: Support for Python 3.2 was dropped in this release, and installation now uses setuptools.

Running the Test Suite

jsonschema uses the wonderful Tox for its test suite. (It really is wonderful, if for some reason you haven’t heard of it, you really should use it for your projects).

Assuming you have tox installed (perhaps via pip install tox or your package manager), just run tox in the directory of your source checkout to run jsonschema’s test suite on all of the versions of Python jsonschema supports. Note that you’ll need to have all of those versions installed in order to run the tests on each of them, otherwise tox will skip (and fail) the tests on that version.

Of course you’re also free to just run the tests on a single version with your favorite test runner. The tests live in the jsonschema.tests package.

Community

There’s a mailing list for this implementation on Google Groups.

Please join, and feel free to send questions there.

Contributing

I’m Julian Berman.

jsonschema is on GitHub.

Get in touch, via GitHub or otherwise, if you’ve got something to contribute, it’d be most welcome!

You can also generally find me on Freenode (nick: tos9) in various channels, including #python.

If you feel overwhelmingly grateful, you can woo me with beer money on Gittip or via Google Wallet with the email in my GitHub profile.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

jsonschema-2.4.0.zip (78.1 kB view details)

Uploaded Source

jsonschema-2.4.0.tar.gz (48.3 kB view details)

Uploaded Source

Built Distribution

jsonschema-2.4.0-py2.py3-none-any.whl (37.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file jsonschema-2.4.0.zip.

File metadata

  • Download URL: jsonschema-2.4.0.zip
  • Upload date:
  • Size: 78.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for jsonschema-2.4.0.zip
Algorithm Hash digest
SHA256 acf1e360b4682d64ba6acc35dbc65d81d9bde68a291a97f14f16f4282733f5a4
MD5 f645c88123189976058fcf550c02e50f
BLAKE2b-256 51d566d3d9494945806961139adea9b435030ecc619f427abff40075e3696fd4

See more details on using hashes here.

File details

Details for the file jsonschema-2.4.0.tar.gz.

File metadata

  • Download URL: jsonschema-2.4.0.tar.gz
  • Upload date:
  • Size: 48.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for jsonschema-2.4.0.tar.gz
Algorithm Hash digest
SHA256 1298a2f1b2f4c4a7b921cccd159e4e42f6d7b0fb75c86c0cdecfc71f061833fa
MD5 661f85c3d23094afbb9ac3c0673840bf
BLAKE2b-256 cac79079166add83ecabd7e269d58c225f8b616b0827dbe316e2d1bac91c86b1

See more details on using hashes here.

File details

Details for the file jsonschema-2.4.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for jsonschema-2.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5af36686c271097f25ec023546c397cb99bc67a5db3836e52e6b37bdb45ca21e
MD5 d1ea8c8b3653689bc2c78dcc4fb478d2
BLAKE2b-256 5e559e973774cb3a47d0d025fc9626c8cff96b104e3764493f91b49fa125d8ec

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page