【问题标题】:How to determine if one json-schema is a subset of another?如何确定一个 json-schema 是否是另一个的子集?
【发布时间】:2019-05-20 00:32:21
【问题描述】:

假设我有两个 json 模式 - 是否有可能(在 python 或其他任何地方)确定一个是否是另一个的子集?

我正在寻找一个关于两个 json-schema 的函数,当且仅当第一个 json-schema 接受的每个实例也被第二个接受时才会返回 true。

举个超级简单的例子,假设我的模式是

int_schema = {'type': 'integer'}
num_schema = {'type': 'number'}

那我就有了

subset(int_schema, num_schema) = True
subset(num_schema, int_schema) = False

真的不在乎这是python,我更想知道json-schema是否支持这一点。

【问题讨论】:

    标签: python jsonschema python-jsonschema


    【解决方案1】:

    到目前为止,我发现的唯一符合您要求的项目是 this Javascript implementation

    考虑到 JSON Schema 在后端和前端通信时确实大放异彩,并且 JavaScript 不是最流行的后端语言,但它是一种非常流行的前端语言,Python 实现(甚至是命令行实用程序)会非常有用结束一个。

    如果有人在那里受到启发,下推自动机将是完成该任务的完美工具!

    另一种方法是为num_schema 编写一个meta schema,并尝试针对它验证int_schema。元模式是自我描述的,您可以根据它们验证其他模式(因此 meta)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 2021-04-05
      • 2020-03-10
      • 1970-01-01
      相关资源
      最近更新 更多