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

Posted for-you

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

这里的file使用的是相对路径,相对当前运行目录。

address.json文件

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

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

以上是关于python使用jsonscheme引用ref报错unknown url type: definitions.json的主要内容,如果未能解决你的问题,请参考以下文章

引用和指针

Python的垃圾回收机制原理

Python 垃圾回收机制详细

ref 属性使用eslint报错

python10_内存管理

taro refs引用