@associatedtolife

Неизвестная ошибка psycopg2, что не так?

Я создал запрос, который должен забирать данные из базы данных PostgreSQL и помещать их в список. Затем по этому списку проходится цикл и некоторые данные помещает в переменные, которые затем переходят в другую часть кода. Проблема именно в этой части кода. Происходит какая-то ошибка, но какая - не выводится. Как можно узнать где именно ошибка и как её исправить? Вот код:
try:
    con = psycopg2.connect(
            host = host,
            user = user,
            password = password,
            database = db_name
        )
    con.autocommit = True
 
    async with con.cursor() as cur:
        cur.execute("""SELECT * FROM native_city WHERE user_id = {}""", (user))
        data_dict = cur.fetchall()
        for data in data_dict:
            nat_city = data[1]
            area = data[2]
 
except Exception as _ex:
    print('[INFO] Error while working with PostgreSQL', _ex)
    print ("[INFO] Exception TYPE:", type(_ex))
finally:
    if con:
        con.close()
        print('[INFO] PostgreSQL connection closed')


Вот что выдаёт:
[INFO] PostgreSQL connection closed
Подключение к БД выполнено успешно
[INFO] Error while working with PostgreSQL
[INFO] Exception TYPE: class 'psycopg2.OperationalError'
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Во-первых, перехватывать широкие исключения - это антипаттерн. Во-вторых, метод execute курсора принимает кортеж, а вы ему передаёте какое-то скалярное значение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы