Задать вопрос
@AlmazKayum

Почему перестали работать postgres запрос в Python?

Здравствуйте.
Использую подключение к Postgresql 11 через psycopg2.

Раньше код прекрасно работал
def get_switch(self):
        with self.conn:
            self.cursor.execute('SELECT switch FROM switches WHERE id=7')
            return self.cursor.fetchone()[0]    

def change_switch(self):
        with self.conn:
            switch = self.get_switch()
            self.cursor.execute('UPDATE switches SET switch=%s WHERE id=7', (not switch,))
            self.conn.commit()


теперь выдает ошибку
in get_switch
with self.conn:
psycopg2.ProgrammingError: the connection cannot be re-entered recursively


Я так понимаю он ругается, что два раза with self.conn: используется.
Почему раньше абсолютно те же строки хорошо работали?
И не работает теперь?
  • Вопрос задан
  • 553 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@o5a
Ругается именно на то, что внутри одного with conn запустили еще один with conn. Проверьте свой код.
Судя по документации и гуглящимся отзывам эту ошибку стали выдавать с версии 2.9, так что возможно раньше просто запускали на более старой версии, поэтому не встречали.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы