无法导入JSONDecodeError
我正在尝试进行以下调用:
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 个回答
3
升级你的安装:
$ pip install -U simplejson
$ python
>>> from simplejson import JSONDecodeError
30
为了更清楚地说明@tim的评论,在Python 3中,你只需要写
from json import JSONDecodeError
这样就可以了,不需要使用simplejson这个包。
34
你已经知道如何得到 JSONDecodeError 的答案,但我觉得正确的建议是你不应该尝试去导入它。
原因是 JSONDecodeError 只在 simplejson
中出现,除非你的 Python 版本非常老旧,否则其实没有必要使用它。最近版本的内置 json
速度一样快,而且没有 unicode 的问题。更多信息可以查看这个链接: https://stackoverflow.com/a/16131316/723090
解决办法是:json
会抛出一个 ValueError,而不是 JSONDecodeError,但 JSONDecodeError(由 simplejson
抛出)其实是 ValueError 的一个子类。所以你只需要捕获一个 ValueError,这样就可以同时适用于 json
和 simplejson
了!