如何按名称选择列? (Python& SQLite3)

时间:2012-11-14 19:46:46

标签: python sqlite

目前我有以下代码:

c.execute("SELECT * FROM table")
for row in c.fetchall():
    print row[0]
    print row[1]

但是,我更改了表的结构,现在我必须更改索引值以表示此更改。有没有办法获得使用列名?

2 个答案:

答案 0 :(得分:10)

出于这个原因,建议在执行SELECT时始终使用显式列名:

c.execute("SELECT color, fluffiness FROM table")
for row in c.fetchall():
    print row[0]         #  <-- is always guaranteed to be the color value
    print row[1]

答案 1 :(得分:9)

请参阅sqlite3模块文档中的Row Objects。如果你使用sqlite3.Row row_factory,你将获得一个比普通元组稍强大的对象。我想它的开销略高,因此不是默认行为。