如何遍历 table 中每一列的行?

How to loop thorough rows of each column in a table?

我正在尝试为 编写一个小程序。它是一个 SQLite 数据库,我正在使用 Python。我遇到了一个问题,我正在编写的查询似乎无法正常工作:

def transform():
con = sqlite3.connect('database.db')
cur = con.cursor()
cur2 = con.cursor()
data = cur.execute('''SELECT * FROM table_1''')
columns = []
for column in data.description:
    columns.append(column[0])
for column2 in columns:
    cur2.execute('''SELECT ? FROM table_1''', (column2, ))
    content = cur2.fetchall()
    print(content)

出于某种原因,此处打印的只是重复多次的列名列表。如果我更换?然而,列名从列变量的输出中逐字复制,它可以工作,并打印列中的每一行。

我做错了什么?

您不能让连接器替换 table 名称和列名称。发生的事情是连接器产生 SQL 像:

    SELECT 'column' FROM table_1;

你得到的是文字字符串'column'。你需要

    curr2.execute(f"SELECT {column2} FROM table_1;")