2010-04-26 17 views
5

Super nub question time! Estoy intentando usar simplejson en google appengine. En una terminal de mi máquina, tengo SimpleJson instalado y funcionando. Pero cuando trato de importarlo en una secuencia de comandos que se ejecuta en el appengine me sale un error que dice que no existe tal biblioteca. Si está abierta la consola interactiva en mi máquina (desde el enlace de http://localhost:8080/_ah/admin) y tipo "simplejson importación" me sale:instalando simplejson en la appengine de google

Rastreo (llamada más reciente pasado): Archivo "/ home/Chris/google_appengine/Google/appengine/ext/admin/init .py", la línea 210, en ejecutivo de post (compiled_code, variables globales()) archivo "", línea 1, en ImportError: Sin módulo denominado simplejson

¿Alguna idea?

+4

No importa, aquí está: de django.utils importar simplejson – chriscauley

Respuesta

14

Buscar en paquete de Django:

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

Desde SDK 1.4.2 JSON se puede importar con la siguiente afirmación:

import simplejson 

Tenga en cuenta que el tiempo de ejecución de Python 2.7 se puede utilizar el native Json library.

+0

que he visto esta respuesta dada con frecuencia a esta pregunta, pero me parece un poco extraño para mí para importar cualquier cosa, desde el paquete django si el usuario no es usando Django. ¿Deberían los usuarios que no son Django simplemente agregar el genérico simplejson directamente a su proyecto? ¿O la versión proporcionada por Google en el paquete django está mejor ajustada a GAE que la versión genérica de simplejson? Como uso json con tanta intensidad, quiero estar seguro de que estoy usando la mejor versión. – Tom

+1

Django es parte del SDK, así que no veo problema para usarlo. También puede colocar en simplejson en su directorio de proyecto y usarlo directamente. Recuerde que la aceleración c no funcionará, App Engine no permite extensiones de python escritas en c – systempuntoout

+0

No he analizado específicamente cómo Django empaqueta simplejson, pero importar solo parte de Django a menudo conduce a la importación _all_ de Django. No sé si este es el caso aquí, pero si es así, es mejor que simplemente uses simplejson en tu directorio de proyectos. –

10

Ya no es necesario utilizar el paquete django para simplejson en Google App Engine.

import simplejson as json 

Esta es EXPECIALLY útil para evitar la oleada de advertencias acerca de las versiones de Django en su archivo de registro.

+3

Tenga en cuenta que con python 2.7 tiene que usar 'json' porque' simplejson' tiene c-accelerated. – nmat

+0

Gracias @nmat su solución me ayudó perfectamente :-) –

Cuestiones relacionadas