9

現在、次のコードがあります。

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

ただし、テーブルの構造を変更したため、この変更を表すためにインデックス値を変更する必要があります。代わりに列名を使用する方法はありますか?

4

2 に答える 2

12

このため、:を実行するときは、常に明示的な列名を使用することをお勧めします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]
于 2012-11-14T20:03:44.660 に答える
12

sqlite3 モジュールのドキュメントの行オブジェクトを参照してください。row_factoryを使用するとsqlite3.Row、通常のタプルよりもわずかに強力なオブジェクトが返されます。オーバーヘッドがわずかに高いため、デフォルトの動作ではないと思います。

于 2012-11-14T19:51:12.800 に答える