Je voudrais analyser une chaîne JSON dans un objet sous Google App Engine (python). Que recommandez-vous? Quelque chose à encoder/stringifier serait bien aussi. Ce que vous recommandez est-il intégré ou une bibliothèque que je dois inclure dans mon application? Est-ce sécurisé? Merci.
Pensez à utiliser la bibliothèque json de Django , qui est incluse avec GAE.
from Django.utils import simplejson as json
# load the object from a string
obj = json.loads( string )
Le lien ci-dessus contient des exemples du sérialiseur de Django, et voici le lien pour documentation de simplejson .
Si vous cherchez à stocker Python instances ou objets de classe (par opposition aux compositions de listes, chaînes, nombres et dictionnaires), vous voudrez probablement regarder pickle =.
J'espère que ça aide.
Par ailleurs, pour obtenir Django 1.0 (au lieu de Django 0.96) exécuté sur GAE, vous pouvez utiliser l'appel suivant dans votre main.py, par cet article :
from google.appengine.dist import use_library
use_library('Django', '1.0')
À partir de Google App Engine 1.6.0, vous pouvez tiliser le Python 2.7 runtime en ajoutant runtime: python27
dans app.yaml
, puis vous pouvez importer la bibliothèque JSON native avec import json
.
Google App Engine prend désormais en charge python 2.7. Si vous utilisez python 2.7, vous pouvez effectuer les opérations suivantes:
import json
structured_dictionary = json.loads(string_received)
Inclure la bibliothèque simplejson avec votre application?
C'est une vieille question, mais j'ai pensé donner une réponse mise à jour et plus détaillée. Pour ceux qui arrivent ici maintenant, vous utilisez presque certainement python 2.6 ou supérieur, vous pouvez donc utiliser le module json intégré pour Python 2 (ou pour Python , car Google a récemment ajouté la prise en charge de Python 3 sur GAE). L'importation est la aussi simple que import json
. Voici quelques exemples d'utilisation du module json:
import json
# parse json_string into a dict
json_string = '{"key_one": "value_one", "key_two": 1234}'
json_dict = json.loads(json_string)
# json_dict: {u'key_two': 1234, u'key_one': u'value_one'}
# generate json from a dict
json_dict = {'key': 'value', 'key_two': 1234, 'key_three': True}
json_string = json.dumps(json_dict)
# json_string: '{"key_two": 1234, "key": "value", "key_three": true}'
Si vous utilisez une ancienne version de python, respectez la réponse de @Brian M. Hunt.
Encore une fois, voici la page doc du module json pour Python 2 , et ici c'est pour Python .
Si vous utilisez Python2.6 ou supérieur, j'ai utilisé avec succès la fonction intégrée json . Load. Sinon, simplejson fonctionne sur 2.4 sans dépendances.
Regardez la section python de json.org . Le support de bibliothèque standard pour JSON a commencé à python 2.6, qui je crois est plus récente que celle fournie par le moteur d'application. Peut-être l'une des autres options répertoriées?