无法导入JSONDecodeError

时间:2013-03-02 04:22:18

标签: python macos python-import

我正在尝试拨打以下电话:

from simplejson import JSONDecodeError

但是我收到了这个错误:

from simplejson import JSONDecodeError
ImportError: cannot import name JSONDecodeError

以下信息可能有所帮助:

  • 此代码在ubuntu中正常运行,但我在 mac 中收到此错误。

  • 我有多个版本的python,我刚刚删除了python 2.6(因为我正在使用 python 2.7

  • 并使用easy_install_27安装此特定库。

4 个答案:

答案 0 :(得分:15)

您已经有了如何获取JSONDecodeError的答案,但我觉得正确的建议应该是您不应该尝试导入它。

原因是JSONDecodeError只出现在simplejson中,除非你的Python版本严重过时,否则没有理由使用它。内置的json在最近的版本中同样快,并且没有unicode错误。信息:https://stackoverflow.com/a/16131316/723090

解决方案:json引发ValueError而不是JSONDecodeError,但JSONDecodeError(由simplejson引发)是ValueError的子类。所以你可以简单地除了一个ValueError,它适用于jsonsimplejson

答案 1 :(得分:5)

只是为了更清楚@tim的注释,您可以在python3中编写

from json import JSONDecodeError

不需要simplejson包

答案 2 :(得分: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库的python安装?检查sys.path并验证所有预期的位置都在搜索路径中。 import simplejson有用吗?如果是,请验证模块加载的文件(import simplejson; print simplejson.__file__)。如果这是预期的,那么验证模块的内容并查看其中是否存在类JSONDecodeError。

答案 3 :(得分:0)

升级您的安装:

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