Python语句中的SQLite游标

时间:2013-05-21 11:13:45

标签: python sqlite cursor

我有以下代码:

def executeOne(self, query, parameters):
    with self.connection as cursor:         
        cursor.execute(query, parameters)
        return cursor.fetchone()

当我调用此方法时,它会抛出以下错误:AttributeError: 'sqlite3.Connection' object has no attribute 'fetchone' 我做错了什么?

1 个答案:

答案 0 :(得分:16)

您收到错误的原因是连接类没有名为fetchone的方法。您需要添加.cursor()来创建游标实例,然后使用closing将其包装起来,以便在with语句中使用。

from contextlib import closing
with closing(self.connectio.cursor()) as cur:

解决此问题的最简单方法是删除with语句并手动关闭cursor

cur = self.connection.cursor() 
try:
    cur.execute(query, parameters) 
    return cur.fetchone()
finally:
    cur.close()