【问题标题】:Cannot import JSONDecodeError无法导入 JSONDecodeError
【发布时间】:2023-03-27 22:51:01
【问题描述】:

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

from simplejson import JSONDecodeError

但我收到此错误:

from simplejson import JSONDecodeError
ImportError: cannot import name JSONDecodeError

以下信息可能会有所帮助:

  • 此代码在 ubuntu 中运行良好,但在 ma​​c 中出现此错误。

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

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

【问题讨论】:

  • 为什么要导入JSONDecodeError?您是否尝试导入 JSONDecoder?
  • 为什么不简单地 import simplejson 并在该命名空间中明确引用您需要的任何内容?
  • 或者从定义的地方导入,from simplejson.scanner import JSONDecodeError
  • 对于python 3,只需from json import JSONDecodeError

标签: python macos python-import


【解决方案1】:

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

from json import JSONDecodeError

不需要simplejson包

【讨论】:

  • 例如 Python 3.4 需要它。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    升级您的安装:

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

    【讨论】:

      【解决方案4】:

      它可以在我的电脑上运行:

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

      【讨论】:

        猜你喜欢
        • 2017-11-26
        • 1970-01-01
        • 2022-07-29
        • 2021-01-20
        • 2021-11-20
        • 2021-06-09
        • 1970-01-01
        • 2017-01-13
        • 1970-01-01
        相关资源
        最近更新 更多