【问题标题】:Validate each element of a two element array with a different schema验证具有不同架构的双元素数组的每个元素
【发布时间】:2021-10-08 13:13:23
【问题描述】:

如何在 python 中使用不同的 jsonschema 验证以下数组的每个元素?

数组:

[22, 33]

验证:

对于第一个元素:{"type": "number", "minimum": 20, "maximum":23}

对于第二个元素:{"type": "number", "minimum": 30, "maximum":35}


到目前为止,我已经尝试使用 prefixItems 指定的 here 没有任何成功。

【问题讨论】:

    标签: python jsonschema


    【解决方案1】:

    可以将items 用作数组:

    schema = {
        "type": "array",
        "items": [
            {
                "type": "number",
                "minimum": 20,
                "maximum": 23,
            },
            {
                "type": "number",
                "minimum": 30,
                "maximum": 35,
            },
        ],
        "additionalItems": False, # Disallow any other elements
    }
    

    最后验证:

    jsonschema.validate([22, 33], schema)
    

    【讨论】:

    • 这取决于您使用的 JSON Schema 版本。具有数组值的“项目”仅在 2019-09 及更早的草稿中有效;在草案 2020-12 中,数组用法重命名为“prefixItems”,“items”下的值必须是模式(应用于数据中的所有数组项)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 2019-03-29
    • 2021-10-02
    • 1970-01-01
    相关资源
    最近更新 更多