0

最小示例(python 3.x):

_required_fields = {
    "id": {
        "type": "integer",
        "minimum": 1,
    },
    "name: {
       "type": "string" 
   }
}

_optional_fields = {
    "address": {
       "type": "string" 
   }
}

my_schema = {
    "type": "object",
    "properties": {
        **_required_fields ,
        **_optional_fields
    },
    "required": [key for key in _required_fields ],
    # "additionalProperties": ???
}

架构应确保所有必填字段都在 JSON 中(工作正常)。它应该将附加属性限制为_optional_fields字典中的属性。(我被困的地方)。

如果没有可选属性,您只需设置additionalPropertiesFalse. 然后是minPropertiesandmaxProperties来限制附加属性的数量。但是如何将这些限制为固定选择?

编辑:

感谢@Relequestual。解决方案非常简单。我设置"additionalProperties": False了,现在它只接受必填和可选字段,除此之外什么都不接受。

4

1 回答 1

1

additionalProperties防止false任何尚未在properties.

required它与or无关也不交互min/maxProperties

于 2019-05-02T09:59:46.540 回答