2012-05-06 96 views
2

如何将页面响应为json页面?代码是否正确?Google应用引擎json响应为REST

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

class JsonPage(webapp.RequestHandler): 
    def get(self): 
     self.response.header['Content-Type'] = 'application/json' 
     self.response.out.write(json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])) 

application = webapp.WSGIApplication([('json', JsonPage)], debug=True) 

def main(): 
    run_wsgi_app(application) 

if __name__ == '__main__': 
    main() 

我收到以下错误信息:

HTTP request sent, awaiting response... 404 Not Found 
2012-05-06 14:10:01 ERROR 404: Not Found. 

进行一些修改代码后,我得到了下面的错误,似乎是转储对象不能json模块中找到:

<pre>Traceback (most recent call last): 
    File &quot;/opt/google_appengine/google/appengine/ext/webapp/_webapp25.py&quot;, line 701, in __call__ 
    handler.get(*groups) 
    File &quot;/home/kelvin/workspace/cloudnuts/json.py&quot;, line 8, in get 
    self.response.out.write(json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])) 
AttributeError: 'module' object has no attribute 'dumps' 
</pre> 
+0

添加app.yaml也 –

+0

ypu是否运行在python2.7或python2.5上? –

+0

我正在使用Python 2.7和Google app引擎sdk 1.6.4。 – kelvinfix

回答

1

你或许应该改变代码:

application = webapp.WSGIApplication([('/json', JsonPage)], debug=True) 

至于你的JSON的问题,你有一个名为json.py本地文件?它会覆盖json包的导入。

+1

谢谢。 self.response.header ['Content-Type']应该是self.response.headers ['Content-Type']。 – kelvinfix

+0

@kelvin那也是:) –

+0

我改变了,现在我在问题的底部提到了一些错误。 – kelvinfix