17

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

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

4 回答 4

27

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

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

解决方案:json引发 ValueError 而不是 JSONDecodeError,但 JSONDecodeError(由 引发simplejson)是 ValueError 的子类。因此,您可以简单地将 ValueError 除外,它适用于jsonand simplejson

于 2016-02-05T01:19:08.967 回答
12

只是为了更清楚@tim的评论,在python3中你可以写

from json import JSONDecodeError

不需要 simplejson 包

于 2020-01-08T15:21:53.683 回答
1

它适用于我的电脑:

$ 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 类。

于 2013-03-02T21:32:52.907 回答
0

升级您的安装:

$ pip install -U simplejson
$ python
>>> from simplejson import JSONDecodeError
于 2013-05-29T08:12:22.293 回答