为什么我不能导入模块?

时间:2013-07-19 15:43:22

标签: python module

我希望能够使用模块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)

1 个答案:

答案 0 :(得分:1)

因此,您可以通过传递--upgrade(或-U)来更新模块,就像它所说的一样。

pip install -U jsonschema

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

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

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

所以,如果你这样做

from jsonschema import Draft3Validator

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