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

解決策: jsonJSONDecodeError の代わりに ValueError を発生させますが、JSONDecodeError (によって発生simplejson) は ValueError のサブクラスです。したがって、単純に ValueError を除外するだけで、 and に対して機能しjsonます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 に答える