最小示例(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
字典中的属性。 (我被卡住的地方)。
如果没有可选属性,只需将additionalProperties
设置为False
。然后是minProperties
和maxProperties
以限制其他属性的数量。但是如何将这些限制为固定的选择呢?
编辑:
感谢@Relequestual。解决方案非常简单。我设置了"additionalProperties": False
,现在它只接受必填字段和可选字段,而没有接受这些字段。
答案 0 :(得分:1)
Foo
至additionalProperties
可以防止false
中尚未定义的任何属性。
它与properties
或required
不相关,也不与之交互