Задать вопрос
@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: используется.
Почему раньше абсолютно те же строки хорошо работали?
И не работает теперь?
  • Вопрос задан
  • 569 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Решения вопроса 1
@o5a
Ругается именно на то, что внутри одного with conn запустили еще один with conn. Проверьте свой код.
Судя по документации и гуглящимся отзывам эту ошибку стали выдавать с версии 2.9, так что возможно раньше просто запускали на более старой версии, поэтому не встречали.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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