2013-03-04 34 views
1

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

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的返回的头。这只会不时出现(当返回很多行时往往会出现在那里)。我需要一种方法来控制标题是否返回 - 无论哪种方式都很好,只要结果是一致的

+0

你可以请张贴作为答案,我可以接受吗? – mbatchkarov 2013-03-04 12:52:56

+0

你走了,看下面。 – 2013-03-04 13:26:41

回答

3

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

那个信息可用,但作为.description属性的游标,从来没有在.fetchall()的结果。

换句话说,其他的东西将数据插入到表中,而SELECT仅仅返回该信息。

命令行客户端执行的操作是格式化结果,如果进行了这种配置,它将添加标头信息,但这不属于SELECT语句本身的一部分。