2012-08-23 28 views
6

Gần đây, bạn đã làm việc trên một ứng dụng appengine. Tôi muốn phân tích dữ liệu json chứa trong các yêu cầu cho ứng dụng. Làm cách nào để sử dụng đối tượng yêu cầu của lớp requesthandler để đạt được điều này?phân tích cú pháp các yêu cầu được định dạng json trong appengine

Dưới đây là một đoạn mã để hiển thị những gì tôi muốn đạt được:

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() 

Trả lời

17

Bạn cần phải phân tích chuỗi json đến trong một đối tượng. Sau này, bạn có thể truy cập các thuộc tính.

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

brilliant..thanks .... tôi được sử dụng thư viện json inbuilt như vậy:

 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']) 
và giải quyết nó ... – koladotnet

+1

Bạn có thực sự vẫn cần json đơn giản, tại sao không chỉ json? –

+0

từ Python SDK phiên bản 1.9.55. bạn có thể sử dụng ujson. UltraJSON là bộ mã hóa và giải mã JSON cực nhanh được viết bằng tinh khiết 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() 
Các vấn đề liên quan