Comment puis-je gérer une demande JSON en bouteille?
Question
Je dois obtenir des données de JSON, transférées par l'Ajax du client. Fondamentalement, je quelque chose comme ceci:
@route('/ajax')
def serve_ajax():
return main.parse_request(json.dumps(dict(request.GET)))
Où main.parse_request est une fonction, qui contient certaines logiques pour traiter les variables JSON (il est une procédure principale de notre moteur de jeu).
Le problème est que je ne peux pas gérer correctement les variables JSON, en transformant request.GET
dans un dict: parce que d'une manière que je l'ai déjà écrit, je ne peux pas passer des objets imbriqués et les tableaux. Aussi chaque valeur a un type de chaîne, alors que je dois avoir des types entier sur les entiers et le type de chaîne sur le repos autre.
Ou, puisque je peux obtenir la chaîne de requête d'origine (par request.query_string
), comment puis-je convertir une chaîne de requête dans un objet JSON original?
La solution
depuis la bouteille 0,10 , le request.json
est prêt à l'emploi:)
ici .
Autres conseils
request.json est limité par MEMFILE_MAX .
Une autre façon fonctionne si les données de demande est plus grande que MEMFILE_MAX
json.load(request.body)