2013-03-02 22 views
5

Próbuję wykonać następujące połączenia:Python: nie można importować JSONDecodeError

from simplejson import JSONDecodeError 

Ale ja dostaję ten błąd:

from simplejson import JSONDecodeError 
ImportError: cannot import name JSONDecodeError 

Następujące informacje mogą pomóc:

  • Ten kod działa dobrze w Ubuntu, ale pojawia się ten błąd w mac.

  • miałem kilka wersji Pythona, a ja po prostu usunięte Pythona 2.6 (jak używam Pythona 2.7)

  • i używane easy_install_27 do zainstalowania tej konkretnej biblioteki.

+0

Dlaczego nie po prostu "zaimportować simplejson" i wyraźnie odnieść się do tego, czego potrzebujesz w tym obszarze nazw? –

+0

Dlaczego chcesz importować JSONDecodeError? Czy próbujesz zaimportować JSONDecoder zamiast tego? – Matt

+0

Lub zaimportuj go z miejsca, w którym został zdefiniowany, 'from simplejson.scanner import JSONDecodeError' – Pierre

Odpowiedz

0

To działa na moim komputerze:

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

Czy potwierdziły, że używasz instalację Pythona, w którym zainstalowana jest biblioteka simplejson? Sprawdź numer sys.path i sprawdź, czy wszystkie oczekiwane lokalizacje znajdują się w ścieżce wyszukiwania. Czy działa import simplejson? Jeśli tak, sprawdź, z jakiego pliku został załadowany moduł (import simplejson; print simplejson.__file__). Jeśli jest to zgodne z oczekiwaniami, sprawdź zawartość modułu i sprawdź, czy klasa JSONDecodeError istnieje w tym module.

0

Zmień swoją instalację:

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

Masz już odpowiedź, w jaki sposób dostać JSONDecodeError, ale czuję, że rada powinna być prawidłowa, że ​​nie należy próbować go importować.

Powodem jest to, że JSONDecodeError pojawia się tylko w simplejson i nie ma powodu, aby go używać, chyba że wersja Pythona jest mocno nieaktualna. Wbudowany json jest równie szybki w najnowszych wersjach i nie ma błędów Unicode. Info: https://stackoverflow.com/a/16131316/723090

Rozwiązanie: json podnosi ValueError zamiast JSONDecodeError, ale JSONDecodeError (podniesione przez simplejson) jest podklasą ValueError. Więc możesz zrobić proste, z wyjątkiem ValueError i będzie działać dla json i simplejson!

Powiązane problemy