2010-04-26 16 views
5

Tempo interrogativo super-nub! Sto cercando di usare simplejson su google appengine. In un terminale sulla mia macchina ho installato e funzionante simplejson. Ma quando provo a importarlo in uno script in esecuzione su Appengine, ricevo un errore nel dire che non esiste una tale libreria. Se aperto la console interattiva sulla mia macchina (dal link sul http://localhost:8080/_ah/admin) e di tipo "importazione simplejson" ottengo:installazione simplejson su google appengine

Traceback (chiamata più recente scorso): file "/ home/Chris/google_appengine/google/appengine/ext/admin/init .py", la linea 210, in post exec (compiled_code, globals()) File "", la linea 1, in ImportError: No module named simplejson

Qualche idea?

+4

Nevermind, eccolo: da django.utils importare simplejson – chriscauley

risposta

14

Look in pacchetto django:

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

Dal Sdk 1.4.2 JSON può essere importato con la seguente dichiarazione:

import simplejson 

Si noti che su Python 2.7 runtime è possibile utilizzare il native Json library.

+0

Ho visto questa risposta data spesso a questa domanda, ma sembra un po 'strano per me a importare nulla dal pacchetto Django se l'utente non è usando Django. Gli utenti non-Django dovrebbero semplicemente aggiungere il simplejson generico direttamente al loro progetto? Oppure la versione fornita da Google nel pacchetto django è in qualche modo meglio sintonizzata su GAE e quindi sulla versione generica di simplejson? Dal momento che io uso json così pesantemente voglio essere sicuro di usare la versione migliore. – Tom

+1

Django fa parte dell'SDK, quindi non vedo problemi ad usarlo. Si potrebbe anche inserire semplicemente nella directory del progetto e usarlo direttamente. Ricorda che c speedup non funzionerà, App Engine non consente estensioni pythonscritte in c – systempuntoout

+0

Non ho guardato in modo specifico come Django pacchetti simplejson, ma importare solo parte di Django porta spesso ad importare _all_ di Django. Non so se questo è il caso, ma in tal caso, potrebbe essere meglio usare semplicemente il json nella directory del progetto. –

10

Non è più necessario utilizzare il pacchetto django per simplejson su Google App Engine.

import simplejson as json 

Questo è specialmente utile per evitare la raffica di avvertimenti su versioni Django nel file di registro.

+3

Nota che con python 2.7 devi usare 'json' perché' simplejson' è c-accelerato. – nmat

+0

Grazie @nmat la tua soluzione mi ha aiutato perfettamente :-) –

Problemi correlati