Python访问具有列名称动态获取的单元格

时间:2012-08-21 10:43:09

标签: python cursor pyodbc

我正在使用pyodbc连接到数据库,需要从某些表中提取信息。

我正在根据某些列名的值为表中的每一行创建一个唯一的id。我从配置文件中获取用于id的每个列名。

我可以使用硬编码的列名来执行此操作:

connection = pyodbc.connect("connection string")
cursor = connection.cursor() 
cursor.execute("select * from " + t)  //t is the table name
rows = cursor.fetchall()
for row in rows: 
    id = `row.GroupID` + `row.Leg` 

但是如何用配置文件中的名称替换列名?

2 个答案:

答案 0 :(得分:4)

您可以使用getattr

colname = "GroupID"
getattr(row, colname)

答案 1 :(得分:3)

假设您已从配置文件中读取列名并存储在列表中(名为“列”),您可以按照以下方式执行操作:

for row in rows:
    id = ''.join([getattr(row, col) for col in columns])

这将从行对象中获取属性并将它们放入列表中,然后使用join将其连接在一起,就像在您的示例中一样。