2013-03-02 61 views
5

我試圖讓下面的調用:的Python:不能導入JSONDecodeError

from simplejson import JSONDecodeError 

但我收到此錯誤:

from simplejson import JSONDecodeError 
ImportError: cannot import name JSONDecodeError 

以下信息可能會有所幫助:

  • 這段代碼在Ubuntu下運行良好,但我在mac中得到這個錯誤。

  • 我有蟒蛇的多個版本,我只是抹去的Python 2.6(如我使用蟒蛇2.7

  • 和使用easy_install_27安裝此特定庫。

+0

爲什麼不簡單地'輸入simplejson'並明確引用該名稱空間內所需的任何內容? – 2013-03-02 06:23:43

+0

爲什麼要導入JSONDecodeError?你想要導入JSONDecoder嗎? – Matt 2013-03-02 04:35:27

+0

或從其定義的位置導入它,'from simplejson.scanner import JSONDecodeError' – Pierre 2014-09-27 11:48:01

回答

0

它工作在我的電腦上:

$ python 
Python 2.7.3 (default, Aug 1 2012, 05:16:07) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from simplejson import JSONDecodeError 
>>> 

你確認你正在運行在安裝了simplejson庫蟒蛇的安裝?檢查sys.path並確認所有預期的位置都在搜索路徑中。 import simplejson是否工作?如果是這樣,請驗證模塊已加載的文件(import simplejson; print simplejson.__file__)。如果這符合預期,那麼驗證模塊的內容並查看JSONDecodeError類是否存在於其中。

0

升級安裝:

$ pip install -U simplejson 
$ python 
>>> from simplejson import JSONDecodeError 
7

你已經對如何獲得JSONDecodeError的答案,但我覺得正確的建議應該是,你不應該試圖將其導入。

原因是JSONDecodeError僅出現在simplejson中,除非您的Python版本嚴重過時,否則沒有真正的理由使用該版本。內置的json在最近的版本中速度一樣快,並且沒有unicode錯誤。信息:https://stackoverflow.com/a/16131316/723090

解決辦法:json引發一個ValueError而不是JSONDecodeError,但JSONDecodeError(由simplejson上調)是ValueError異常的子類。所以你可以簡單的除了一個ValueError,它可以用於jsonsimplejson