在Python和SQLite中,要将列名传递给游标,可以通过使用PRAGMA table_info(table_name)
语句获取表的列名信息,并将结果存储在一个列表中。然后,可以将这个列表作为参数传递给游标的execute()
方法。
以下是具体的步骤:
import sqlite3
conn = sqlite3.connect("database.db")
table_name = "table_name"
cursor = conn.cursor()
cursor.execute("PRAGMA table_info({})".format(table_name))
column_names = [column[1] for column in cursor.fetchall()]
在这里,PRAGMA table_info(table_name)
语句返回一个包含列名信息的结果集。column[1]
表示每个列名信息中的名称部分。
cursor.execute("SELECT * FROM {}".format(table_name))
for row in cursor.fetchall():
for i, column_name in enumerate(column_names):
print("{}: {}".format(column_name, row[i]))
在这里,我们通过执行SELECT * FROM table_name
语句来获取表中的所有行,并遍历每一行。然后,使用enumerate()
函数将索引和列名结合起来,以便能够打印每个列的值。
完整示例代码:
import sqlite3
conn = sqlite3.connect("database.db")
table_name = "table_name"
cursor = conn.cursor()
cursor.execute("PRAGMA table_info({})".format(table_name))
column_names = [column[1] for column in cursor.fetchall()]
cursor.execute("SELECT * FROM {}".format(table_name))
for row in cursor.fetchall():
for i, column_name in enumerate(column_names):
print("{}: {}".format(column_name, row[i]))
conn.close()
请注意,上述示例仅用于演示目的。在实际应用中,您可能需要根据具体的需求进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云