1

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

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

4

2 回答 2

4

您可以使用getattr

colname = "GroupID"
getattr(row, colname)
于 2012-08-21T11:34:54.640 回答
3

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

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

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

于 2012-08-21T11:37:11.020 回答