2013-07-19 476 views
0

我希望能夠使用模塊jsonschemaiter_errors功能。我導入了模塊jsonschema,但無法訪問iter_errors。爲什麼我無法導入模塊?

我懷疑這可能是因爲該模塊需要更新,如果是這種情況,我該如何做?

我試着重新安裝它,python提示我使用命令'升級',我不確定如何使用。

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

謝謝!


RE評論:

我下面的代碼使用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

你試圖用來訪問'iter_errors'的實際代碼是什麼? 'import'只是將模塊名稱導入到您的名稱空間中;你最需要'jsonschema.iter_errors'。 – geoffspear

+0

這是否回答你的問題? – goldisfine

回答

1

因此,您可以通過傳遞--upgrade(或-U)來通過pip更新模塊。

pip install -U jsonschema 

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

iter_errors已經存在很長一段時間了)。

一旦您有最新版本,請確保與示例一樣顯示您創建* validator *實例來調用它。這是驗證者的一種方法,而不是一種功能。

所以,如果你

from jsonschema import Draft3Validator 

你的榜樣應該產生你想要什麼。