问题标签 [python-jsonschema]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
29 浏览

json - 如果在另一个属性中提到它,则 JSON 模式规则要求属性存在

拥有这样的 JSON:

attribute_1, attribute_X- 名称是动态的,也可以是blabla-something,我没有固定的属性名称列表。我想创建一个 JSON 模式验证,attribute_2如果它在嵌套的other_attribute_reference. 我知道JSON 模式中的if/else,但是当属性名称是动态的并且几乎可以是任何东西时,我将如何使用它?

0 投票
0 回答
355 浏览

json - 如何为nestes字典编写jsonschema

我有带有以下 json dicts 的文件,其中所有键和值都是字符串:

我的架构看起来像这样,但它似乎不起作用(您能否就我在使用此架构时做了什么提供建议:

0 投票
1 回答
735 浏览

json - JSON 模式无法解析 $ref,需要 StartObject 布尔值,得到字符串

无法解析另一个文件中的子模式$ref

错误信息: Unexpected token encountered when reading value for '$ref'. Expected StartObject, Boolean, got String. Path 'properties.organization.items.properties.$ref'

根模式

子模式位于文件的同一目录中organisation.json

在我看来,根模式可以找到子模式。但是,由于某些数据类型的差异,它无法加载子模式。但我不确定差异是什么?

在错误消息中Expected StartObject.got String,我不确定StartObject是什么以及String指的是什么。

0 投票
1 回答
610 浏览

json - 如何对 JSON 模式对象的值设置限制?

我想检查 json 文件中多个条目的特定值。我写了一个 JsonSchema 但它没有显示正确的结果。

例如:

json 文件将被验证,如果它只有一个“main”为真,其余为假。如果它有多个 true 则不会验证。我尝试了以下 jsonSchema:

0 投票
1 回答
152 浏览

python - JSONSchema 验证失败,$ref (Draft v7)

我按照 v7 规范草案创建了一个 JSON 模式。架构如下所示:

但出现错误无法解析架构引用“#/definitions/categoryList”。路径 'properties.songs.items.properties.composition.properties.publishing.items.properties.territory',第 40 行,第 24 位。如果我省略定义部分,它会完美运行

0 投票
1 回答
162 浏览

json - 如何验证子属性在对象的所有子项中仅设置一次

我正在尝试验证以下 JSON

我想确保expose_port里面的services孩子只能定义一次。所以添加"expose_port": 1234到“db”应该使 JSON 无效。

到目前为止,这是我的架构:

到目前为止,我已经尝试将 allOf 和 oneOf 结合起来,但这似乎只适用于当前的孩子,而不是看兄弟姐妹。有谁知道我的问题的解决方案?:)

谢谢!

0 投票
2 回答
493 浏览

python - 用于查看/ JSON Schema 文件的 Python 模块

我正在寻找一个用于加载 JSON Schema 文件并将其作为对象处理的 Python 模块。我可以通过常规json模块和 eg来做到这一点dictor,但我希望找到一个 JSON Schema 特定模块,例如可以本机理解dependenciesdefinitions类似概念,提供更容易处理数据。

需要明确的是,我不是在寻找 JSON Schema 验证工具,而是在寻找 JSON Schema 对象管理器。这样的事情存在吗?

为了说明我要进行的处理类型,请参见下文:

0 投票
1 回答
524 浏览

json - 如果我使用 JSON Schema 的 if-else 条件,是否有办法针对 JSON 中存在的任何附加键引发错误?

我有一个用例,我想检查 JSON 中存在的键,具体取决于不同键的值。

示例 JSON-1:

示例 JSON-2:

根据这些例子,

规则 1。如果“key_name”的值为“value1”,那么JSON 中应该只有“foo”键。

规则 2。如果“key_name”的值为“value2”,那么JSON 中应该只有“bar”键。

我编写了以下 JSON Schema 来验证这些 JSON:

现在,根据规则,以下 JSON 无效,应该引发错误。

或者

但是,上面的 JSON Schema 没有这样做。它仅根据“key_name”的值检查“foo”/“bar”键是否。它无法检查是否存在任何新密钥。

怎么办?

0 投票
0 回答
26 浏览

json - 如果我使用 JSON Schema 的 if-else 条件,有没有办法引发错误,其中提到 JSON 中存在的附加键的名称?

我有一个用例,我想检查 JSON 中存在的键,具体取决于不同键的值。

示例 JSON-1:

示例 JSON-2:

这里有两条规则:

规则 1。如果“key_name”的值为“value1”,那么 JSON 中应该只有“foo”键。

规则 2。如果“key_name”的值为“value2”,那么 JSON 中应该只有“bar”键。

现在,根据规则,以下 JSON 是无效的,应该会引发错误。

或者

我已经根据这个问题编写了用于验证这些 JSON 的 JSON 模式。

但是如果我使用它,我会收到以下错误:

JSON 在任何给定模式下均无效。

虽然这解决了目的,但这个错误并不能完全解释为什么 JSON 无效。我期待一些错误,例如:

“不允许附加属性('bar' 是意外的)”

这是出现任何附加键时的默认错误

如何去做?

0 投票
0 回答
138 浏览

python-3.x - 在 python jsonschema 中验证 oneOf 的递归错误

这里我尝试使用 jsonschema(Draft7Validator) 库验证我的 JSON 模式

验证架构:

针对 JSON 数据:

{ 'name': 'William Shakespeare', 'address': 'Henley Street, England', 'Packet': {'ShippingSerialID': 'xyz'} }

通过返回错误:

这里对于第一个它会生成深度错误“Packet.ShippingSerialID”->“'xyz' is too long”,但对于第二个 od oneOf 它只会为根元素“'Packet_2' is a required property”生成错误。从中期待的是:

我怎样才能达到上述结果。

用于此的 Python 代码如下所示: