在Python中使用Cyclone或Tornado,怎么创建一个返回JSON的简单处理器?

4 投票
2 回答
1276 浏览
提问于 2025-04-16 14:52

我这样做可以吗?

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格式。

撰写回答