Метод fetchone() возвращает NoneType
В базе данных указан Data type - text. По логике вещей он должен возвращать string, но почему-то возвращает NoneType и выскакивает соответствующая ошибка "expected string or bytes-like object".
import psycopg2
from auth_data import host, password, db_name, user
import re
connection = psycopg2.connect(host=host, user=user, password=password, database=db_name)
pattern = r"'(.*?)'"
try:
cursor = connection.cursor()
with connection.cursor() as cursor:
cursor.execute(f"SELECT game FROM game_users WHERE id_tg = 5916961134;")
connection.commit()
string = cursor.fetchone()
print(re.findall(pattern, string))
except Exception as _ex:
print(f'[INFO] Error while working with PostgreSQL {_ex}')
finally:
if connection:
cursor.close()
connection.close()
print(f'[INFO] PostgreSQL connection closed')
Жду ваших решений!
P.S. база данных - PostgreSQL, если это играет какую-то роль.
P.S.S Пишу это дополнения, как доказательство тому, что в результате есть строка.
import psycopg2
from auth_data import host, password, db_name, user
connection = psycopg2.connect(host=host, user=user, password=password, database=db_name)
try:
cursor = connection.cursor()
with connection.cursor() as cursor:
cursor.execute(f"SELECT game FROM game_users WHERE id_tg = 5916961134;")
connection.commit()
print(f'[INFO] String is {cursor.fetchone()}')
except Exception as _ex:
print(f'[INFO] Error while working with PostgreSQL {_ex}')
finally:
if connection:
cursor.close()
connection.close()
print(f'[INFO] PostgreSQL connection closed')
Вывод:
[INFO] String is ('Minecraft',)
[INFO] PostgreSQL connection closed
Источник: Stack Overflow на русском