gpt4 book ai didi

Python jsonschema 无法验证字符串枚举

转载 作者:行者123 更新时间:2023-11-28 21:53:33 26 4
gpt4 key购买 nike

所以,我正在尝试为一组轴约束定义一个模式。因此,我想将“axis”元素的可能值限制为 ["x", "y", "z"]。

这是我当前的示例,它是输出。

JSON:

{
"name_patterns": [
{
"regex": "block[_-]?([\\d]*)",
"class": "block",
"id_group": 1
}
],

"relationships": [
{
"src_class": "block",
"dst_class": "block",
"constraints": {
"axis": "x"
}
}
]
}

架构:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name_patterns": {"type": "array",
"items": { "$ref": "#/definitions/name_entry" } },
"relationships": {"type": "array",
"items": { "anyof": [ {"$ref": "#/definitions/relation"} ] } }
},

"definitions": {
"name_entry": {
"type": "object",
"properties": {
"regex": {"type": "string"},
"class": {"type": "string"},
"id_group": {"type": "number"}
},
"required": ["regex", "class"]
},
"relation": {
"type": "object",
"properties": {
"src_class": {"type": "string"},
"dst_class": {"type": "string"},
"constraints": {
"type": "object",
"properties": {
"axis": {
"enum": ["x", "y", "z"]
}
},
"required": ["axis"]
}
},
"required": ["src_class", "dst_class", "constraints"]
}

}
}

如何修复我的架构以拒绝未在枚举器中指定的值?

最佳答案

您的架构语法有点不对。

首先,您需要将属性定义放入properties:

{
"properties": {
"axis": {...}
}
}

其次,type 定义类型(例如 "string"),但您在这里不需要它。 enum 应该直接在 "axis" 模式中:

{
"properties": {
"axis": {
"enum": ["x", "y", "z"]
}
}
}

关于Python jsonschema 无法验证字符串枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25916555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com