web-dev-qa-db-ja.com

Python3:json.decoderからJSONDecodeErrorをインポートできません

python 3.4.3を使用してvirtualenvをセットアップし、json.decoderからJSONDecodeErrorをインポートしようとしました

from json.decoder import JSONDecodeError (I think its valid in python3 ? But why not working for me ?) 

しかし、それは機能していません。以下のみが機能しています:

from simplejson import JSONDecodeError

どうしたの?

virtualenv venv --no-site-packages -p python3 
pip install ipython
ipython
from json.decoder import JSONDecodeError
ImportError: cannot import name 'JSONDecodeError'

enter image description here

5
user2349115

.4.x docs によると、JSONデコードが失敗すると、プレーンなValueErrorが発生します。

JSONDecodeErrorクラスは .5.x から利用できます。

16

module json(Python version> = 3.5.0) 、Python which version <3.5.0は、今行ったようなインポートステートメントをサポートしていません。ただし、Python(バージョン> = 3.5.0)を使用している場合、インポートステートメントは間違いなく正しいです。

2
EUPHORAY

jsonは、Pythonに統合されたsimplejsonのバージョンです。それ以来、それらは別々に開発されており、もはや同じではありません。したがって、必ずしも交換可能に使用できるとは限りません。

違いの詳細については、 この回答 を参照してください。

0
Sarien