0

我有一个包含 7 列的学生数据库。当我尝试直接打印输出时,输出以 [(r1, r2,r3,r4...),(),(),....] 格式打印,没有列名。所以我决定遍历这些值并写下这个:

c.execute("select * from student")
rows = c.fetchall()
for row in rows:
    print("s_id",row[0])
    print("s_name,row[1])
    .
    .until the table ends

有没有一种方法可以直接获取我的列名,以便我可以在上述循环中使用一个打印语句来编写它??????例如:像这样的东西

c.execute("select * from student")
rows = c.fetchall()
for row in rows:
    print("table_name[i]",row[i])

其中表名是列名列表

4

1 回答 1

0
import sqlite3
connection = sqlite3.connect('~/foo.sqlite')
cursor = connection.execute('select * from student')
# Get the name of columns
names = [description[0] for description in cursor.description]
rows = cursor.fetchall()
for row in rows:
    for name, val in zip(names,row):
        print( name, val)

在上面的列表理解中使用 cursor.description 。

于 2020-04-22T15:51:39.337 回答