目前我有以下代码:
c.execute("SELECT * FROM table")
for row in c.fetchall():
print row[0]
print row[1]
但是,我更改了表的结构,现在我必须更改索引值以表示此更改。有没有办法获得使用列名?
答案 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,你将获得一个比普通元组稍强大的对象。我想它的开销略高,因此不是默认行为。