从sqlite中无头部选择
我在想有没有办法通过编程的方式从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返回的表头。这个表头并不是每次都有(通常在返回很多行数据的时候会出现)。我需要一种方法来控制是否返回表头——无论哪种方式都可以,只要结果是 一致的。
1 个回答
3
不,这最后一行是从表格中返回的数据。一个选择操作(select)绝对不会把列标题包含在行数据里。
这些信息是可以获取的,但它作为一个.description
属性存在于游标中,而不是在.fetchall()
的结果里。
换句话说,是其他地方把这些数据插入到你的表格里的,而SELECT
只是把这些信息返回给你。
命令行客户端的作用是为你格式化结果,如果配置得当,它会添加标题信息,但这并不是SELECT
语句本身的行为。