Я сталкивался с несколькими руководствами и пакетами по реализации JSON RPC-сервера Python, например ::10000
Все они хорошо выполняют свою работу в том смысле, что реализация сервера / приложения очень проста: вы просто возвращаете объект 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, и сериализовать их на лету.