SQLite курсор в Python с оператором
У меня есть следующий код:
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 ответ
Решение
Причина, по которой вы получаете сообщение об ошибке, заключается в том, что в классе соединения отсутствует метод с именем fetchone
, Вам нужно добавить .cursor()
создать экземпляр курсора, а затем обернуть его закрытием, чтобы он работал в операторе 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()