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 オブジェクトを作成し、それを結果として返す必要があります。
私が探している理想的なソリューションには、アプリケーションに応答を書き込むためのストリームを提供するフレームワークと、その場でイテレーター (この場合は pyodbc からのカーソル) をエンコードできる JSON エンコーダーが含まれます。
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])
書き込み用のストリームを提供できるサーバーフレームワークと、pyodbcカーソルなどのイテラブルを処理してその場でシリアル化できるjsonシリアル化フレームワークを教えてください。