将SQLite查询结果保存为Python变量

4
我正在处理的问题是,我想将sqlite3查询结果保存在一个变量中,我创建了以下代码:
import sqlite3
conn=sqlite3.connect('Database.db')
c=conn.cursor()
#this is implicit, but there is no xxx row in my table, condition and something 
#arent real parameters for my query
qry=("SELECT xxx FROM xxx WHERE condition=something")
y=c.execute(qry)
print(y)

当我运行这段代码时,我在输出中得到以下内容:
<sqlite3.Cursor object at 0x01FCD6A0>

现在,举个例子,如果我使用for循环来打印该查询中的行:
for row in c.execute(qry):
    print(row)

我没有问题,但我希望将查询打印出的值保存到变量中,需要注意的是,我正在尝试保存一个只有一行和一列的查询,例如:('EXAMPLE',)

是否有办法将单行、单列查询保存到变量中,然后打印出来?我需要安装某个模块吗?

1个回答

9

使用 fetchone 方法并搭配索引 0 [0]:

c.execute(qry)
y=c.fetchone()[0]
print(y)

非常感谢,我在想,是否有一种方法可以将多行查询保存在列表中? 例如:list=[('something','xxx'),('another','yyy')] 我想我需要使用for循环,并且我成功地编写了以下代码: row=[] for x,y in c.execute("SELECT nombre, clave FROM empleado"): print(x,y) z=(x,y) row.append(z) - Byron Mh
1
当然,如果是一个查询有很多行的情况,只需循环并将其附加到一个列表中即可。如果我的答案解决了您的问题,请将其标记为已接受。谢谢。 - midori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接