从 pyodbc execute() 语句返回列名


from pandas import DataFrame
import pyodbc
cnxn = pyodbc.connect(databasez)
cursor.execute("""SELECT ID, NAME AS Nickname, ADDRESS AS Residence FROM tablez""")
DF = DataFrame(cursor.fetchall())

这很好,可以填充我的熊猫数据帧。但是我如何获得

DF.columns = ['ID', 'Nickname', 'Residence']

直接从光标?该信息是否存储在游标中?

您可以从光标说明中获取列:

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

最近的熊猫有更高级别的read_sql功能可以为你做到这一点

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

如果您在 Matti John 提供的代码中遇到NoneType错误,请确保在从数据库中检索数据进行cursor.description调用。举个例子:

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

这为我修复了它。

改进前面的答案,在熊猫的背景下,我发现这完全符合我的预期:

DF.columns = DataFrame(np.matrix(cursor.description))[0]

相关内容

  • 没有找到相关文章

最新更新