#python #postgresql #psycopg2
#python #postgresql #psycopg2
Вопрос:
моя проблема в том, что я хочу выполнить запрос select в python, но он завершается неудачей.
def check_account(cur, account_id):
sql = """SELECT description FROM accounts WHERE id = %s;"""
acc_desc = None
try:
cur.execute(sql, (account_id,))
acc_desc = cur.fetchone()[0]
except (Exception, psycopg2.DatabaseError) as error:
print(error)
return acc_desc
Это решение, похоже, не работает, поскольку оно возвращает тип None, что странно, потому что, когда я выполняю это в своей консоли SQL, оно возвращает то, что я хочу (текст). Подключение к базе данных также работает, потому что запросы insert (которые кодируются аналогично этому) работают так, как должны. Я использую postgresql и python 3.8.5, а также библиотеку psycopg2 для подключения к базе данных и курсора.
Комментарии:
1. Вы уверены, что передаете действительный account_id?
2. Да, когда я отлаживаю, я проверяю cur. атрибут запроса, который показывает действительный account_id, который присутствует в моей базе данных. Чтобы добавить, я попробовал простой «ВЫБРАТЬ * ИЗ учетных записей», который также вернул NoneType.
3. Что, если вы сделаете это.
acc_desc = cur.fetchone()
без получения 1-го индекса.4. Он по-прежнему возвращает нетип, даже когда я пытаюсь
cur.fetchall()
, результатом является пустой список.5. Какой результат
print(cur.mogrify(sql, (account_id,)))
?