Problem
Put definitions in the current document, no problem, put in an external file, according to the official document description:
main.py file
from jsonschema import validatea = { "type": "object", "required": ["shipping_address"], "properties": { "shipping_address": {"$ref": "definitions.json#/address"} }}ins = {"billing_address": 1, "shipping_address": 2}validate(ins, a)
Definitions.json file
{ "Adress": { "Type": "Object", "Properties": { "Street_address": {"Type": "string"}, "City": {"Type": "string"}, "State": {"Type": "string"} }, "Required": ["Street_address", "City", "State"]}}
Resolve the use of file
main.py file
fromimport= { "type""object", "required": ["shipping_address"], "properties": { "shipping_address": {"$ref""file:address.json"} = {"billing_address"1"shipping_address"2}validate(ins, a)
The file here uses a relative path relative to the current running directory.
Address.json file
{ "Type": "Object", "Properties": { "Street_address": {"Type": "string"}, "City": {"Type": "string"}, "State": {"Type": "string"} }, "Required": ["Street_address", "City", "State"] }
Here a definition is required to write a separate file, and for the moment there are no references to multiple definition writes to a JSON file.
Python uses Jsonscheme to reference ref error unknown URL Type:definitions.json