我遇到了几个关于实现 python JSON RPC 服务器的指南和包,例如:
- http://json-rpc.org/wiki/python-json-rpc
- http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/552751
- http://pythonpaste.org/webob/jsonrpc-example.html
从服务器/应用程序实现非常简单的意义上说,它们都做得很好,您只需返回 python 对象作为结果,框架会负责序列化它。但是,这不适合我的需求,主要是因为我期待从数据库中序列化可能数千条记录,而这样的解决方案将要求我创建一个包含所有记录的单个 python 对象并将其作为结果返回。
我正在寻找的理想解决方案将涉及一个框架,该框架将为应用程序提供一个用于写入响应的流和一个 JSON 编码器,该编码器可以动态编码迭代器(在本例中为来自 pyodbc 的游标),如下所示:
def process(self, request, response):
// retrieve parameters from request.
cursor = self.conn.cursor()
cursor.execute(sql) // etc.
// Dump the column descriptions and the results (an iterator)
json.dump(response.getOut(), [cursor.description, cursor])
有人可以指出一个服务器框架,它可以为我提供一个要写入的流和一个 json 序列化框架,它可以处理诸如 pyodbc 游标之类的可迭代对象并即时对其进行序列化。