我正在尝试使用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
任何帮助将不胜感激。
答案 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语句不正确。