return column names from pyodbc execute() statement return column names from pyodbc execute() statement python python

return column names from pyodbc execute() statement


You can get the columns from the cursor description:

columns = [column[0] for column in cursor.description]


Recent pandas have a higher level read_sql functions that can do this for you

import pyodbcimport pandas as pdcnxn = pyodbc.connect(databasez)DF = pd.read_sql_query("SELECT ID, NAME AS Nickname, ADDRESS AS Residence FROM tablez", cnxn)


In case you are experiencing the NoneType error from the code provided by Matti John, make sure to make the cursor.description call after you have retrieved data from the database. An example:

cursor = cnxn.cursor()cursor.execute("SELECT * FROM my_table")columns = [column[0] for column in cursor.description]

This fixed it for me.