2012-08-23 3 views
6

В последнее время работает над приложением appengine. Я хотел бы проанализировать данные json, содержащиеся в запросах к приложению. Как я могу использовать объект запроса класса requesthandler для достижения этого?синтаксический анализ json отформатированных запросов в appengine

Ниже приведен фрагмент кода, чтобы показать, что я хочу добиться:

import cgi 
import webapp2 
import datamethods 

from google.appengine.ext.webapp.util import run_wsgi_app 

class adduser(webapp2.RequestHandler): 
    def get(self): 
     # Get the phone number from json data in request. 
     userphone = self.request.get("phone") 
     # Get the name from json data in request. 
     name = self.request.get("name") 


app = webapp2.WSGIApplication([ 
    ('/adduser', adduser), 
    ('/sign', updatestatus), 
    ('/login',login) 
], debug=True) 


def main(): 
    run_wsgi_app(app) 

if __name__ == "__main__": 
    main() 

ответ

17

Вы должны анализировать входящую строку JSON в объект. После этого вы можете получить доступ к атрибутам.

import json # Now you can import json instead of simplejson 
.... 
jsonstring = self.request.body 
jsonobject = json.loads(jsonstring) 
+0

brilliant..thanks .... я использовал встроенные библиотеки JSON так:

 import json class message(webapp.RequestHandler): def post(self): self.response.headers['Content-Type'] = "text/plain" # self.response.out.write(self.request.body) data = json.loads(self.request.body) self.response.out.write(data['sux']) 
и решает его ... – koladotnet

+1

вы действительно все еще нужно простой JSON, то почему бы просто не только JSON? –

+0

с Python SDK версии 1.9.55. вы можете использовать ujson. UltraJSON - ультра быстрый кодировщик и декодер JSON, написанный на чистом C – voscausa

0
import cgi 
import webapp2 
import datamethods 

from google.appengine.ext.webapp.util import run_wsgi_app 

class adduser(webapp2.RequestHandler): 
    def get(self): 
     items = [] 
     response = { } 

     userphone = self.request.get("phone") 
     name = self.request.get("name") 

     items.append({'userphone': userphone , 'name':name}) 
     response['userInformation'] = items 
     return response #return json data 


app = webapp2.WSGIApplication([ 
    ('/adduser', adduser), 
    ('/sign', updatestatus), 
    ('/login',login) 
], debug=True) 


def main(): 
    run_wsgi_app(app) 

if __name__ == "__main__": 
    main() 
Смежные вопросы