2012-08-23 7 views
6

최근 appengine 응용 프로그램에서 작업했습니다. 나는 애플 리케이션에 요청에 포함 된 json 데이터를 구문 분석하고 싶습니다. 어떻게 이것을 달성하기 위해 requesthandler 클래스의 request 객체를 사용합니까?응용 프로그램에서 json 형식의 요청을 구문 분석

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을해야합니까 ... 그것을 해결 왜 그냥 아들? –

+0

Python SDK 버전 1.9.55부터. ujson을 사용할 수 있습니다. UltraJSON은 순수 C로 작성된 초고속 JSON 인코더 및 디코더입니다. – 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()