Twisted和adbapi - 结果有关于列名的信息?

时间:2014-12-09 10:07:26

标签: python twisted

可以在结果中找到有关列名的信息吗?它必须是任何数据库的通用解决方案。

我的代码

def runQuery(self, query, callback, *args, **kwargs):
  """A method for query with result.
  - query -- sql query
  - callback -- function with one argument
  """
  self.logmsg(_("Executing SQL query"))
  self.dbpool.start()
  d = self.dbpool.runQuery(query)
  self.dbpool.close()

  d.addCallback(callback)

给回调赋予元组列表。我需要第一个元组或字典列表上的列名。

1 个答案:

答案 0 :(得分:1)

如果你正在使用ConnectionPool类,那么你可以创建它的子类并覆盖它的_runQuery方法:

from twisted.enterprise import adbapi

class MyConnectionPool(adbapi.ConnectionPool)

    def _runQuery(self, trans, *args, **kw):
        trans.execute(*args, **kw)
        data = trans.fetchall()
        if trans.description is not None:
            data = [tuple(c[0] for c in trans.description)] + list(data)
        return data