2

我想知道是否有办法以编程方式从 sqlite3 表中选择并获得没有标题的结果集。我在这里这里发现了几个相关的问题,它们通过调用来解决问题.headers OFF,但这个选项似乎只适用于命令行 sqlite 客户端。作为参考,这是我的python查询代码(少一些异常处理):

con = lite.connect('my_db.sqlite')
sql = 'SELECT * FROM some_table'
cur = execute(sql, con)
rows = cur.fetchall()

那么的值rows变成

[
    (100, 102460, 18994), 
    (200, 102460, 13056), 
    (300, 102460, 10784), 
    (400, 102460, 9153), 
    (u'sample_size', u'total_tok', u'unknown_tok_mean')
]

请注意最后一项是 sqlite 返回的标头。这只会不时出现(当返回许多行时往往会出现)。我需要一种方法来控制是否返回标头——任何一种方式都可以,只要结果是 一致的。

4

1 回答 1

3

不,最后一行是从表返回的数据。选择永远不会在行数据中包含列标题。

该信息可用的,但作为.description光标上的属性,永远不会出现在.fetchall().

换句话说,其他东西将该数据插入到您的表中,并且SELECT只是返回该信息。

命令行客户端所做的是为您格式化结果,并且如果这样配置,它将添加标题信息,但这不是SELECT语句本身的一部分的行为。

于 2013-03-04T13:26:29.780 回答