2010-04-26 8 views
5

Super pytanie czas nub! Próbuję użyć simplejson w google appengine. W terminalu na moim komputerze mam zainstalowany i działa simplejson. Ale kiedy próbuję zaimportować go w skrypcie uruchomionym w aplikacji, pojawia się komunikat o braku takiej biblioteki. Jeśli otwarta interaktywna konsola na moim komputerze (z linku na http://localhost:8080/_ah/admin) i typu "import simplejson" pojawia się:Instalacja Simplejson na Google Appengine

Traceback (most recent call last): File „/ home/Chris/google_appengine/google/AppEngine/ext/admin/init, .py”, linia 210, w post exec (compiled_code, globals()) pliku "", linia 1, w ImportError: No module o nazwie simplejson

Wszelkie myśli?

+4

nieważne, to jest tutaj: z django.utils importować simplejson – chriscauley

Odpowiedz

14

Look w pakiecie django:

from django.utils import simplejson as json 
obj = json.loads(json_string) 

Ponieważ SDK 1.4.2 Json mogą być importowane z następującym stwierdzeniem:

import simplejson 

pamiętać, że w czasie wykonywania Pythona 2.7 można użyć native Json library.

+0

Widziałem tę odpowiedź daną często na to pytanie, ale wydaje się nieco dziwne dla mnie, aby importować coś z pakietu django, gdy użytkownik nie jest używając Django. Czy użytkownicy spoza Django powinni dodać zwykły simplejson bezpośrednio do swojego projektu? A może wersja dostarczona przez Google w pakiecie django jakoś lepiej dostosowała się do GAE, a następnie do ogólnej wersji simplejson? Ponieważ używam json tak mocno, chcę mieć pewność, że używam najlepszej wersji. – Tom

+1

Django jest częścią zestawu SDK, więc nie widzę problemu z jego użyciem. Możesz również zapisać Simplejson w swoim katalogu projektu i użyć go bezpośrednio. Pamiętaj, że przyspieszenie c nie będzie działać, App Engine nie zezwala na wypisywanie pythonowych napisanych w c – systempuntoout

+0

Nie patrzyłem konkretnie na to, jak pakiety Django są proste, ale importowanie tylko części Django często prowadzi do importowania _all_ z Django. Nie wiem, czy tak jest w tym przypadku, ale jeśli tak, lepiej być może po prostu używając simplejson w swoim katalogu projektu. –

10

Nie musisz już używać pakietu django dla simplejson w Google App Engine.

import simplejson as json 

Jest to szczególnie przydatne, aby uniknąć zamieszania ostrzeżeń o wersjach django w pliku dziennika.

+3

Zauważ, że w python 2.7 musisz użyć 'json', ponieważ' simplejson' ma akcelerację c. – nmat

+0

Dzięki @ nmat Twoje rozwiązanie pomogło mi idealnie :-) –

Powiązane problemy