我有以下代码:
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'
我做错了什么?
答案 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()