我正在使用此示例sqlite database,我的代码是
import sqlite3
conn=sqlite3.connect('chinook.db')
conn.execute("SELECT * FROM tracks")
rows= conn.cursor().fetchall()
for row in rows:
print row
它应该可以工作,但是没有输出?我在这里做什么错了?
答案 0 :(得分:1)
Connection.execute
shortcut返回一个cursor
实例,您需要将其与fetchall
一起使用。在您的代码中,您正在创建一个新的独立游标。
因此:
import sqlite3
conn = sqlite3.connect('chinook.db')
cursor = conn.execute("SELECT * FROM tracks")
rows = cursor.fetchall()
for row in rows:
print row
或者不要使用Connection.execute
快捷键,以免造成混淆:
import sqlite3
conn = sqlite3.connect('chinook.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM tracks")
rows = cursor.fetchall()
for row in rows:
print row