如何在Python中从sqlite3打印输出

4

这是我的代码:

 conn=sqlite3.connect('myfile.db')
 print(conn.execute("PRAGMA table_info(mytable);"))
当我运行时,会得到以下输出:

sqlite3.Cursor object at 0x02889FAO

如何打印出实际的sqlite3输出呢?
2个回答

5
你应该获取结果。下面是一个可行的示例:
import sqlite3

conn = sqlite3.connect('myfile.db')
cursor = conn.execute("PRAGMA table_info(mytable);")
results = cursor.fetchall()
print(results)

或者使用漂亮的打印输出:
import sqlite3
from pprint import pprint

conn = sqlite3.connect('myfile.db')
cursor = conn.execute("PRAGMA table_info(mytable);")
results = cursor.fetchall()
pprint(results)

谢谢!sqlite3文档将其混入有关输入净化的示例中,然后就没有了。没有后续章节用于打印查询结果或其他任何内容。非常令人困惑。 - Mike B

0
如果您更喜欢通过列名而不是索引来访问数据,那么提供的解决方案可能不适用。在获取输出时,SQLite通常返回一个sqlite3.Row对象,而不是一个list。为了方便查看和打印这个输出,您需要将结果转换为字典。
以下是如何实现的方法:
import sqlite3 as sl

con = sl.connect('db.sqlite')
con.row_factory = sl.Row
rows = con.execute('SELECT * FROM table').fetchall()

for row in rows:
     print(dict(row))
     print(row['column_name'])

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