jschon: A JSON Toolkit for Python Developers

0.11.1 · active · verified Fri Apr 17

jschon is a comprehensive Python library for working with JSON data, JSON Schema validation (supporting Draft 2020-12), JSON Pointer, JSON Patch, and JSONPath. It provides robust tools for schema definition, data validation, and JSON document manipulation. The current version is 0.11.1, and the library maintains a relatively active release cadence with frequent minor and patch updates.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define a JSON Schema, create a JSON data instance, and validate the instance against the schema using `jschon`'s `JSONSchema` and `JSON` classes.

from jschon import JSON, JSONSchema

# Define a JSON Schema
schema_data = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer", "minimum": 0}
    },
    "required": ["name", "age"]
}
schema = JSONSchema(schema_data)

# Define a JSON instance
instance_data = {"name": "Alice", "age": 30}
instance = JSON(instance_data)

# Validate the instance against the schema
result = schema.evaluate(instance)

if result.valid:
    print("JSON instance is valid!")
else:
    print("JSON instance is invalid:")
    print(result.output('basic'))

# Example of invalid data
invalid_instance_data = {"name": "Bob", "age": -5}
invalid_instance = JSON(invalid_instance_data)
invalid_result = schema.evaluate(invalid_instance)

if not invalid_result.valid:
    print("\nInvalid instance output:")
    print(invalid_result.output('basic'))

view raw JSON →