Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
general purpose python data validator
Python
Failed to load latest commit information.
docs 1.0.0
validictory Added a new option 'remove_unknown_properties', which simply removes …
.coveragerc up coverage by ignoring __main__
.gitignore .ropeproject ignore
.travis.yml fix coveralls for validictory
AUTHORS.txt Juan & James to authors
LICENSE.txt update text/metadata
MANIFEST.in add changelog to manifest
README.rst docs badge
setup.cfg add wheel setup
setup.py update trove
tox.ini

README.rst

validictory

https://travis-ci.org/sunlightlabs/validictory.svg?branch=master https://coveralls.io/repos/sunlightlabs/validictory/badge.png?branch=master Documentation Status

A general purpose Python data validator.

Works with Python 2.7 and Python 3.3+

Schema format based on JSON Schema Proposal (http://json-schema.org)

Contains code derived from jsonschema, by Ian Lewis and Yusuke Muraoka.

Usage

JSON documents and schema must first be loaded into a Python dictionary type before it can be validated.

Parsing a simple JSON document:

>>> import validictory
>>>
>>> validictory.validate("simplejson", {"type":"string"})

Parsing a more complex JSON document:

>>> import simplejson
>>> import validictory
>>>
>>> data = simplejson.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')
>>> schema = {
...   "type":"array",
...   "items":[
...     {"type":"string"},
...     {"type":"object",
...      "properties":{
...        "bar":{
...          "items":[
...            {"type":"string"},
...            {"type":"any"},
...            {"type":"number"},
...            {"type":"integer"}
...          ]
...        }
...      }
...    }
...   ]
... }
>>> validictory.validate(data,schema)

Catch ValueErrors to handle validation issues:

>>> import validictory
>>>
>>> try:
...     validictory.validate("simplejson", {"type":"string","minLength":15})
... except ValueError, error:
...     print error
...
Length of value 'simplejson' for field '_data' must be greater than or equal to 15

You can read more in the official documentation at Read the Docs.

Something went wrong with that request. Please try again.