gpt4 book ai didi

json - 当元素是可选的时,如何在 json 模式中定义选择元素?

转载 作者:行者123 更新时间:2023-12-04 07:53:14 26 4
gpt4 key购买 nike

------------乔斯模式------------

{
"type": "object",
"properties": {
"street_address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"street_address"
],
"additionalProperties": false
}

在上面的模式中,我想在城市和州之间创建一个选择。也就是说,城市或州都可以以 json 形式出现。所以下面的json是无效的
{
"street_address": "abc",
"city": "anv",
"state": "opi"
}

并且低于一个应该是有效的
{
"street_address": "abc"
}

或者
{
"street_address": "abc",
"city": "anv"
}

或者
{
"street_address": "abc",
"state": "opi"
}

有人可以帮我修改上述架构以实现目标。

最佳答案

我找到了 enum对这个用例有用的属性。

例子:

schema = {
"type": "array",
"items": {
"enum": ["choice1", "choice2"]
}
}

validate(
instance=["choice1"],
schema=schema
)
# all good

validate(
instance=["something-else"],
schema=schema
)
# ValidationError

引用:
https://json-schema.org/understanding-json-schema/reference/combining.html#combining-schemas

希望能帮助到你。

关于json - 当元素是可选的时,如何在 json 模式中定义选择元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27048252/

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