在Python中使用Cyclone或Tornado,怎么创建一个返回JSON的简单处理器?
我这样做可以吗?
import cyclone
class MyHandler(cyclone.web.RequestHandler):
def get(self, command):
details = {'status':'success'}
json = json_encode(details)
self.write(json)
还是说这其中还有更多的内容呢?
2 个回答
2
我建议使用内置的 json编码函数:
self.write(tornado.escape.json_encode(details)
如果你的数据是字典类型,tornado会自动把这些数据转成json格式。但如果是列表类型,就不一定了。
根据Tornado的代码(web.py):
要注意,列表不会被转换成JSON格式,因为这样可能会有跨站安全漏洞。所有的JSON输出都应该放在一个字典里。想了解更多,可以查看这个链接:http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx
7
其实还简单得多:如果你写的是一个字典,只需要用 self.write(details)
这行代码,它会自动把字典转换成JSON格式。