2010-04-26 13 views
5

Super Nub Frage Zeit! Ich versuche, Simplejson auf dem Google Appengine zu verwenden. In einem Terminal auf meiner Maschine habe ich einfachJS installiert und funktioniert. Aber mein, wenn ich versuche, es in einem Skript zu importieren, das auf dem Appengine läuft, erhalte ich einen Fehler, der besagt, dass keine solche Bibliothek existiert. Wenn öffnen Sie die interaktive Konsole auf meinem Rechner (über den Link auf http://localhost:8080/_ah/admin) und geben Sie "Import simplejson" Ich bekomme:Installation von Simplejson auf der Google Appengine

Traceback (jüngste Aufforderung zuletzt): Datei „/ home/chris/google_appengine/google/appengine/ext/admin/init Py“, Linie 210, in der Post exec (compiled_code, Globals()) Datei "" Linie 1 in Import: Nein simplejson

namens Modul

Irgendwelche Gedanken?

+4

macht nichts, hier ist es: von django.utils importieren simplejson – chriscauley

Antwort

14

Blick in django Paket:

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

Da Sdk 1.4.2 Json kann mit der folgenden Anweisung importiert werden:

import simplejson 

Beachten Sie, dass auf Python 2.7 Runtime Sie die native Json library verwenden können.

+0

ich diese Antwort häufig auf diese Frage gesehen habe, aber es scheint ein wenig seltsam für mich etwas von der django-Paket zu importieren, wenn der Benutzer nicht ist mit Django. Sollten Nicht-Django-Benutzer einfach das generische simplejson direkt zu ihrem Projekt hinzufügen? Oder ist die von Google im django-Paket mitgelieferte Version irgendwie besser auf GAE abgestimmt als die generische Version von simplejson? Da ich Json so stark benutze, möchte ich sicher sein, dass ich die beste Version verwende. – Tom

+1

Django ist Teil des SDK, also sehe ich kein Problem, es zu benutzen. Sie könnten Simplejson auch in Ihr Projektverzeichnis einfügen und direkt verwenden. Denken Sie daran, dass c Beschleunigung wird nicht funktionieren, App Engine nicht Python Erweiterungen in c geschrieben – systempuntoout

+0

Ich habe nicht speziell untersucht, wie Django Pakete simplejson, aber nur einen Teil von Django importieren führt oft zu importieren _all_ von Django. Ich weiß nicht, ob das hier der Fall ist, aber wenn es so ist, ist es vielleicht besser, wenn Sie simplejson einfach in Ihrem Projektverzeichnis verwenden. –

10

Sie müssen das django-Paket für simplejson nicht mehr in Google App Engine verwenden.

Dies ist besonders praktisch, um die Vielzahl von Warnungen über Django-Versionen in Ihrer Protokolldatei zu vermeiden.

+3

Beachten Sie, dass Sie mit Python 2.7 'json' verwenden müssen, da' simplejson' c-accelerated ist. – nmat

+0

Dank @nmat hat deine Lösung mir perfekt geholfen :-) –

Verwandte Themen