问题标签 [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.
python - 如何在 ipython 中修复“DistributionNotFound:'jsonschema' 分布 ...”
在安装了 jsonschema 3.0.1 的虚拟环境 (venv) 中,尝试import jsonschema
从 ipython 执行会导致以下错误。
python -c 'import jsonschema'
作品。
python - JSON模式,检查值的总和是否超过100
我正在编写一个json
模式,它根据数字总和验证文件,存储在一个属性中object
,例如下面的示例。A 和 B 之和不能超过 100%。是否有允许这种规范的模式/功能?
提前致谢
json - jsonschema - oneOf 关键字的行为异常
我正在尝试json
使用 Python 验证有效负载jsonschema 3.0.1
,大致看起来像这样(简化为麻烦的部分):
一个有效的请求应该有两个字段:topic
和 matching message
。
它们中的每一个都可以param1
仅由一个或两个 param1
组成,并且param2
。
- 有效的:
topic { param1, param2 }, body { param1, param2 }
- 有效的:
topic { param1 }, body { param1 }
但它不能既没有topic
with onlyparam1
也有 body with both,也不能有 a topic
with both 和 body with onlyparam2
:
- 无效的:
topic { param1, param2 }, body { param1 }
- 无效的:
topic { param1}, body { param1, param2 }
因为一个节点的内容取决于另一个节点的内容,所以我无法使用dependencies
关键字或if-then-else
构造,所以我尝试使用, 并提供一个有效子模式列表,其中包含对和版本的oneOf
引用字段,如下所示:one_param
both_params
验证器的行为不是我所期望的:它在两个参数的情况下都失败了,并成功地验证了一个参数或不匹配的参数的情况。
为什么我的验证模式不能像我解释的那样工作?
这是我为此目的编写的整个测试:
good_1
案例验证失败good_2
,bad_1
并bad_2
成功验证案例
jsonschema - 如何在 json-schema 中扩展具有 1 个参数的对象
我以前写过一个 JSON 模式,但现在,当我试图让它更高级时,我卡住了。
(我对评论中的“良好实践”提示持开放态度)
(是$id
可选的吗?为了简单起见,我应该在示例代码中删除它吗?)
目标:
我正在尝试example_obj
使用递归使用的对象定义()创建模式。此对象可能只有 1 个参数(or
或and
或value
)。但是在 json 的根目录中,我想添加 1 个附加属性。
json模式
我想通过验证的json:
问题:
当我尝试扩展example_obj
根定义时,它似乎失败了,因为该example_obj
对象在设计上不允许超过 1 个属性。
换句话说,似乎每次检查我添加的参数数量example_obj
也是在附加属性(即filter_version
)上执行的。
有谁知道在哪里放置“恰好 1 个参数”的检查,以便不对root
对象进行评估?
尝试:
我尝试使用不同的方法来确定 的要求example_obj
,但没有成功。就像替换"maxProperties": 1
为:
提前感谢您的帮助!!
使用在线模式验证器检查我的模式。
(最后我需要在 Python 中验证它,以防万一)
jsonschema - jsonschema 扩展并且没有额外的属性
我正在使用 jsonschema 来验证条目类型,这些条目类型描述了(给定类型的)条目是如何显示的。这些条目可以有页面并分为多个方面。
页面和方面都可以设置条件,我想重用基本模式,即使方面的条件可以具有页面条件没有的 2 个其他属性。
这是我经常遇到的普遍问题。我想扩展一个模式,同时能够在所有情况下将“additionalProperties”设置为 false。
我也看不到用 anyOf 修复它的可能性,allOf 没有重复。
还是我应该放弃additionalProperties
或接受重复项?
jsonschema - Json 模式无法验证枚举属性中的正确值
我有以下模式和 json,json 模式验证在 log 属性上失败,因为它在实例上找不到值“yes”。验证器工具https://www.jsonschemavalidator.net/中传递了相同的内容,但我的代码中没有。我不知道发生了什么事
[u'yes'] 不是 ['no', 'yes'] 之一
无法验证架构中的“枚举”['properties']['systems']['items']['properties']['log']: {'enum': ['no', 'yes']}
在实例['systems'][0]['log']:[u'yes']
架构
JSON
python - 如果可选属性无效,JSON Schema 会抛出验证错误
我有一个如下所示的 json 模式,它具有三个可选的属性高度、重量和体积。但我想在这里做以下额外检查:
- 如果传递了除了身高、体重和体积之外的任何其他属性,那么它应该会抛出一个错误
不确定如何实现这一点,因为这些是可选属性。
json - 带有python jsonschema的未知url类型用于引用路径
我有多个大json-schema
文件。许多模式文件都有一些共同的属性。
为了消除公共模式定义之间的冗余,将那些在单独的模式文件中分开并使用$ref
来引用单个 JSON 模式。
我所有模式文件的目录结构都像
的内容page.json
是
文件的内容page_layout.json
是
结合这两个文件,要验证的示例 JSON 数据是
的内容data
会根据type
值而变化。
我正在使用python jsonchema来验证 JSON 数据,验证代码是
但这会给$ref
文件带来错误,因为
jsonschema - 如何根据属性存在更改 json 模式?
我的目标是根据属性的存在来更改架构。
这些是我的模式:
这个想法是在“id”属性存在的情况下遵循“existing_sample”模式,并在它丢失的情况下遵循“sample”模式。
当“id”存在时,它会按预期工作,这意味着如果出现未指定的属性,它将引发异常:
不允许附加属性
但如果“id”属性丢失,它将返回异常:
'id' 是必需的属性
好像它仍然遵循“existing_sample”模式。
有任何想法吗?
python - 如何验证 JSON Schema 文件的有效性?
我有一个像这样的JSON Schema文件,其中包含几个故意的错误:
我想编写一个可以找到这些错误的 Python 脚本(或者,更好的是,安装一个带有 PiP 的 CLI)。
我已经看到了这个答案,它建议执行以下操作(针对我的用例进行了修改):
但上面的脚本没有检测到架构文件中的任何一个错误。我会怀疑它至少可以检测到属性中的额外冒号"type:"
。
我是否错误地使用了图书馆?如何编写检测此错误的验证脚本?