Validate JsonSchema

本文介绍了如何使用Python库jsonschema进行Json Schema的验证。首先需要通过pip安装jsonschema库,然后可以使用jsonschema.validate()函数对实例进行验证,该函数接受实例和要验证的schema作为参数。如果schema中包含$kyschema$属性,将根据元模式选择合适的验证器。如果不想验证schema本身,可以直接使用特定验证器的validate()方法,如Draft4Validator.validate()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Library needed: pip install jsonschema
Pypi: https://pypi.python.org/pypi/jsonschema
https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft4Validator

jsonschema.validate(instance, schema, cls=None, *args, **kwargs)[source]
Parameters:

  • instance – the instance to validate
  • schema(dict) – the schema to validate with
  • cls – an IValidator class that will be used to validate the instance.

If the cls argument is not provided, two things will happen in accordance with the specification. 1> if the schema has a $schema property containing a known meta-schema then the proper validator will be used. The specification recommends that all schemas contain schema properties or this reason. 2> If no schema property is found, the default validator class is Draft4Validator.

validate() will first verify that the provided schema is itself valid, since not doing so can lead to less obvious error messages and fail in less obvious or consistent ways. If you know you have a valid schema already or don’t care, you might prefer using the validate() method directly on a specific validator (e.g. Draft4Validator.validate()).

Example 1:

#-*- coding: UTF-8 -*-

from jsonschema import validate

schema = {
    "type" : "object",
    "properties" : {
        "price" : {"type" : "null"},
        "name" : {"type" : "string"}
    }
}

instance = {"name" : "Eggs", "price" : None}
validate(instance, schema)
#validate(instance, schema, Draft4Validator)

Example 2:

#-*- coding: UTF-8 -*-

from jsonschema import validate
import json

f = file("jsonSchema.json")
jschema = json.load(f)
f.close()

jstr = '{"name": "00_sample_case1","description": "an example."}'
validate(json.loads(jstr), jschema)

Example 3: Using the validate() directly

#-*- coding: UTF-8 -*-

from jsonschema import validate
from jsonschema import Draft4Validator

schema = {
    "type" : "object",
    "properties" : {
        "price" : {"type" : "null"},
        "name" : {"type" : "string"}
    }
}

instance = {"name" : "Eggs", "price" : None}
Draft4Validator(schema).validate(instance)

Example 4: Validate the given schema against the validator’s META_SCHEMA.

from jsonschema import Draft4Validator

schema = {
    "$schema": "http://json-schema.org/schema#",

    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "email": {"type": "string"},
    },
    "required": ["email"]
}
Draft4Validator.check_schema(schema)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值