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



我正在使用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` 

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

您可以使用getattr:

colname = "GroupID"
getattr(row, colname)

假设您的列名已经从配置文件中读取并存储在一个列表中(名为"columns"),那么您可以执行以下操作:

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

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

相关内容

  • 没有找到相关文章

最新更新