我在 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 对象,因为 row_factory 是最后调用的。