在APSW中提取所有数据
你知道APSW没有“fetchall”这个方法。我们只能使用.next()
这个方法。那么,我该怎么把执行一个选择查询的结果放到一个列表里呢?
1 个回答
1
apsw的3.6.22版本让我可以用 cursor.fetchall()
来一次性获取所有行,并把它们放进一个列表里:
import apsw
conn = apsw.Connection(':memory:')
curs = conn.cursor()
curs.execute("CREATE TABLE foo (id INTEGER, name VARCHAR(255))")
curs.executemany("INSERT INTO foo VALUES (?, ?)", [(1, 'bar'),(2, 'baz')])
print curs.execute("SELECT * FROM foo").fetchall()
[(1, u'bar'), (2, u'baz')]
如果你的版本不支持这个功能,但支持 .next()
,那么你可以把游标包裹在一个列表里(通过遍历游标)。这样也能实现这个功能,对我来说是有效的:
curs.execute("SELECT * FROM foo")
print list(curs)
[(1, u'bar'), (2, u'baz')]