我希望能够使用模块jsonschema中的iter_errors
函数。我已导入模块jsonschema,但无法访问iter_errors。
我怀疑这可能是因为模块需要更新,如果是这种情况,我该怎么做?
我尝试重新安装它,python促使我使用命令'upgrade',我不确定如何使用。
Requirement already satisfied (use --upgrade to upgrade): jsonschema in /Library/Python/2.7/site-packages
Cl
谢谢!
重新评论:
我正在使用代码用法here,它从验证器类调用该函数:
EX CODE:
>>> 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)
答案 0 :(得分:1)
因此,您可以通过传递--upgrade
(或-U
)来更新模块,就像它所说的一样。
pip install -U jsonschema
截至今日的最新版本是2.0.0。
(iter_errors
已经存在很长一段时间了。)
一旦你有了一个最新的版本,请确保像示例所示,你创建一个* validator *实例来调用它。这是验证器的方法,而不是函数。
所以,如果你这样做
from jsonschema import Draft3Validator
你的例子应该产生你想要的东西。