python使用jsonscheme引用ref报错unknown url type: definitions.json

问题

将definitions放在当前的文档中,没有问题,放在外部文件中,根据官方文档的说明:

main.py文件

from jsonschema import validate

a = {
    "type": "object",
    "required": ["shipping_address"],
    "properties": {
        "shipping_address": {"$ref": "definitions.json#/address"}
    }
}
ins = {"billing_address": 1, "shipping_address": 2}
validate(ins, a)

definitions.json文件

{
  "adress": {
      "type": "object",
      "properties": {
          "street_address": {"type": "string"},
          "city": {"type": "string"},
          "state": {"type": "string"}
    },
    "required": ["street_address", "city", "state"]
}
}

解决使用file

main.py文件

from jsonschema import validate

a = {
    "type": "object",
    "required": ["shipping_address"],
    "properties": {
        "shipping_address": {"$ref": "file:address.json"}
    }
}
ins = {"billing_address": 1, "shipping_address": 2}
validate(ins, a)

address.json文件

{
    "type": "object",
    "properties": {
      "street_address": {"type": "string"},
      "city": {"type": "string"},
      "state": {"type": "string"}
    },
    "required": ["street_address", "city", "state"]
  }

这里需要一个definition需要写一个单独的文件,暂时没有找到多个definition写到一个json文件中的引用方法。

猜你喜欢

转载自www.cnblogs.com/for-you/p/9143830.html