具有流式传输功能的Python JSON RPC服务器

时间:2009-11-11 00:37:04

标签: python json rpc

我遇到了几个实现python JSON RPC服务器的指南和包,例如:

在服务器/应用程序实现非常简单的意义上,它们都做得很好,您只需返回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游标并在运行时序列化它。

1 个答案:

答案 0 :(得分:2)

如果典型的JSON-RPC框架不允许您有效地转储如此庞大的数据,为什么不只是使用HTTP服务器并返回json数据,这样就可以流式传输和读取流式数据,好的方面是你甚至可能gzip用于更快的传输,你也可以使用许多标准服务器,例如阿帕奇。