MySQL连接器游标说明

时间:2018-10-08 09:33:45

标签: python python-3.x mysql-connector

我正在尝试使用MySQL连接器在结果的前面插入过程输出的列标题。

我的代码当前为:

    import mysql.connector
from mysql.connector import errorcode


cnx = mysql.connector.connect(user='###', password='###',
                              host='###',
                              port='###',
                              database='new_schema')
if cnx.is_connected():
        print('Connection Established.')
    else:
        print('Connection Failed.')


    def call_new_carer_report():
        cur = cnx.cursor()
        cur.callproc('new_carer_report')
        cur.stored_results()
        for result in cur.stored_results():
            global results
            results = result.fetchall()
        header = [i[0] for i in cur.description]
        rows = [list(i) for i in cur.fetchall()]
        rows.insert(0, header)
        cur.close()

我用results正确接收到输出,但是在行上收到错误:

header = [i[0] for i in cur.description]

哪个国家/地区:

    header = [i[0] for i in cur.description]
TypeError: 'NoneType' object is not iterable

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

最终弄清楚我哪里出了问题。

新功能代码为:

def call_new_carer_report():
    cur1 = cnx.cursor()
    cur1.callproc('new_carer_report')
    cur1.stored_results()
    for result in cur1.stored_results():
        global results1
        results1 = result.fetchall()
    header1 = [i[0] for i in result.description]
    rows1 = [list(i) for i in results1]
    rows1.insert(0, header1)
    print(rows1)
    cur1.close()

我意识到我想从Cursor对象中获取描述,而不是从存储的结果中获取。

答案 1 :(得分:0)

此错误“ TypeError:'NoneType'对象不可迭代”很可能是由于查询中的SQL语句不正确。