現在、次のコードがあります。
c.execute("SELECT * FROM table")
for row in c.fetchall():
print row[0]
print row[1]
ただし、テーブルの構造を変更したため、この変更を表すためにインデックス値を変更する必要があります。代わりに列名を使用する方法はありますか?
このため、:を実行するときは、常に明示的な列名を使用することをお勧めします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]
sqlite3 モジュールのドキュメントの行オブジェクトを参照してください。row_factoryを使用するとsqlite3.Row
、通常のタプルよりもわずかに強力なオブジェクトが返されます。オーバーヘッドがわずかに高いため、デフォルトの動作ではないと思います。