从json schema获取必填字段

Riz*_*hiy 2 python json jsonschema

我正在尝试针对模式测试许多json文档,并且我使用具有所有必需字段名称的对象来保持每个文件具有多少错误.

在任何python库中是否有一个函数创建一个样本对象,其中包含是否需要特定字段的布尔值.即从这个架构:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "type": {
            "type": "string"
        },
        "position": {
            "type": "array"
        },
        "content": {
            "type": "object"
        }
    },
    "additionalProperties": false,
    "required": [
        "type",
        "content"
    ]
}
Run Code Online (Sandbox Code Playgroud)

我需要得到类似的东西:

{
  "type" : True,
  "position" : False,
  "content" : True
}
Run Code Online (Sandbox Code Playgroud)

我也需要它来支持对定义的引用

Bro*_*bin 5

我不知道会有这样做的库,但是这个简单的函数使用dict理解来获得所需的结果.

def required_dict(schema):
    return {
        key: key in schema['required']
        for key in schema['properties']
    }

print(required_dict(schema))
Run Code Online (Sandbox Code Playgroud)

来自您提供的架构的示例输出

{'content': True, 'position': False, 'type': True}
Run Code Online (Sandbox Code Playgroud)

编辑:链接到repl.it示例