Python で sqlite3 を使用していますが、Python クラスを使用して同じデータベース テーブルに対して Cursor オブジェクトと Row オブジェクトを選択する方法があるかどうか疑問に思っていました。
言い換えれば、私はこのようなことをすることができます:
class get_db:
def __init__(self, dbpath):
con = sqlite3.connect(dbpath, isolation_level=None)
self.tups = con.cursor()
con.row_factory = sqlite3.Row
self.dict = con.cursor()
次に、次の方法で同じ値を返すことができます。
db = get_db('/path/to/sql.db')
db.tups.execute("SELECT * FROM table WHERE id=24").fetchone()[0] # For the first tuple element
db.dict.execute("SELECT * FROM table WHERE id=24").fetchone()['id'] # Which is the first tuple element as well
現在、接続を作成するときにどちらかを選択する必要があるようです。上記の例は、row_factory が最後に呼び出されたので、Row オブジェクトを返します。