从json schema获取必填字段

时间:2015-07-31 16:17:13

标签: 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"
    ]
}

我需要得到类似的东西:

{
  "type" : True,
  "position" : False,
  "content" : True
}

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

1 个答案:

答案 0 :(得分:5)

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

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

print(required_dict(schema))

您提供的架构的示例输出

{'content': True, 'position': False, 'type': True}

修改:link to repl.it example