2013-03-02 57 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