从没有标题的sqlite中选择

时间:2013-03-04 12:29:56

标签: python select sqlite

我想知道是否有一种方法可以从sqlite3表中以编程方式进行选择,并获得不带标头的结果集。我找到了几个相关的问题herehere,通过调用.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返回的标头。这只会不时出现(当返回很多行时往往存在)。我需要一种方法来控制是否返回标题 - 只要结果是一致,两种方式都可以。

1 个答案:

答案 0 :(得分:3)

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

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

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

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