0

我希望能够使用iter_errors模块jsonschema中的功能。我已导入模块 jsonschema,但无法访问 iter_errors。

我怀疑这可能是因为模块需要更新,如果是这种情况,我该怎么做?

我尝试重新安装它,python 提示我使用命令“升级”,我不确定如何使用。

Requirement already satisfied (use --upgrade to upgrade): jsonschema in /Library/Python/2.7/site-packages
Cl

谢谢!


重新评论:

我在这里关注代码用法,它从验证器类调用函数:

前代码:

>>> schema = {
...     "type" : "array",
...     "items" : {"enum" : [1, 2, 3]},
...     "maxItems" : 2,
... }
>>> v = Draft3Validator(schema)
>>> for error in sorted(v.iter_errors([2, 3, 4]), key=str):
...     print(error.message)
4 is not one of [1, 2, 3]
[2, 3, 4] is too long

我的代码:其中 x 是示例 JSON

with open('gc_schema_test.json', 'r') as handle:
     schema = json.load(handle)

v = Draft3Validator(schema)
for error in sorted(v.iter_errors(x), key=str):
    print(error.message)
4

1 回答 1

1

--upgrade因此,您可以通过传递(或-U)来使用 pip 更新模块。

pip install -U jsonschema

截至今天的最新版本是 2.0.0。

iter_errors虽然已经存在了很长一段时间)。

一旦你有了最新版本,请确保像示例显示的那样创建一个 * 验证器 * 实例来调用它。它是验证器的一种方法,而不是一个函数。

所以如果你这样做

from jsonschema import Draft3Validator

你的例子应该产生你想要的。

于 2013-07-19T21:44:08.083 回答