Python 运维

torndb解决MySQLdb不支持python3问题

2017-12-06  本文已影响49人  LionelDong

python3.x torndb解决MySQLdb问题


AttributeError: module 'itertools' has no attribute 'izip'

#! /usr/bin env python3
# -*- coding:utf-8 -*-

import torndb

config = {
    "host": "127.0.0.1:3306",
    "user": "root",
    "password": "bukeshuo",
    "database": "db_test"
}
def query_all():
    con = torndb.Connection(**config)
    results = con.query('select account from users')
    con.close()
    return results

print(query_all())

    def query(self, query, *parameters, **kwparameters):
        """Returns a row list for the given query and parameters."""
        cursor = self._cursor()
        try:
            self._execute(cursor, query, parameters, kwparameters)
            column_names = [d[0] for d in cursor.description]
            """
            错误说itertools找不到izip模块。
            因为我们使用的mysqlclient替代MySQLdb,
            所以使用zip_longest模块替代izip模块。
            """
             # 使用这一句替代下面一行代码
             # return [Row(itertools.zip_longest(column_names, row)) for row in cursor]
            return [Row(itertools.izip(column_names, row)) for row in cursor]
        finally:
            cursor.close()

上一篇 下一篇

猜你喜欢

热点阅读