Size: a a a

Сообщество Python Программистов

2020 September 15

in Сообщество Python Программистов
V
всем привет
требуется выполнить действие если значение в ячейке базы sqlite пустое
для проверки что содержит ячейку использую следующее
result = cursor.execute(f'SELECT name FROM users WHERE user_id={user_id}')
       return result.fetchone())

не понимаю как правильно обработать результат возврата этой фукнции через if

p.s. про ф строки знаю потом исправлю пока тесты)
Убери f строки из execute.

В доке sqlite написано же, как правильно подставлять переменные
источник

Д

Дмитрий in Сообщество Python Программистов
Не спится, простыл я
ну ты эт, не запускай вирус...
источник

V

V in Сообщество Python Программистов
Убери f строки из execute.

В доке sqlite написано же, как правильно подставлять переменные
я ж написал
p.s. про ф строки знаю потом исправлю пока тесты)
источник

А

Айван in Сообщество Python Программистов
Убери f строки из execute.

В доке sqlite написано же, как правильно подставлять переменные
Они необучаемые. Ему уже говорили
источник

in Сообщество Python Программистов
V
я ж написал
p.s. про ф строки знаю потом исправлю пока тесты)
Ну это триггер, вижу f'SELECT... - сразу негодую
источник

А

Айван in Сообщество Python Программистов
"user_id это же нe user input"
источник

in Сообщество Python Программистов
V
всем привет
требуется выполнить действие если значение в ячейке базы sqlite пустое
для проверки что содержит ячейку использую следующее
result = cursor.execute(f'SELECT name FROM users WHERE user_id={user_id}')
       return result.fetchone())

не понимаю как правильно обработать результат возврата этой фукнции через if

p.s. про ф строки знаю потом исправлю пока тесты)
Напечатай в консоль, что выводит fetchone() и сразу поймёшь)
источник

V

V in Сообщество Python Программистов
Айван
Они необучаемые. Ему уже говорили
трагикомедию не устраивайте
я новичок пока тестирую что и как работает использую способы которыми проще
опять же я написал
p.s. про ф строки знаю потом исправлю пока тесты)
источник

in Сообщество Python Программистов
Айван
"user_id это же нe user input"
Лучше бы юзер инпут был, а не горе-программист
источник

V

V in Сообщество Python Программистов
Напечатай в консоль, что выводит fetchone() и сразу поймёшь)
ну понятное дело)
возврат <class 'NoneType'>
возможно ли получить просто None или можно обрабатывать как if x == NoneType?
источник

in Сообщество Python Программистов
V
ну понятное дело)
возврат <class 'NoneType'>
возможно ли получить просто None или можно обрабатывать как if x == NoneType?
А что ты печатаешь, покажи код
источник

in Сообщество Python Программистов
fetchone()
Fetches the next row of a query result set, returning a single sequence, or None when no more data is available.
источник

V

V in Сообщество Python Программистов
если ты о строке проверки
if sqlite.check(sqlite.create_connection(config.SQL_PATH), message.chat.id) is None
источник

V

V in Сообщество Python Программистов
функция проверки
def check(connection, user_id):
   connection.row_factory = sqlite3.Row
   cursor = connection.cursor()
   try:
       result = cursor.execute(f'SELECT name FROM users WHERE user_id={user_id}')
       print(result.fetchone())
       print(type(result.fetchone()))
       print("Запрос успешно выполнен")
       return result.fetchone()
   except Error as e:
       print(f"Произошла ошибка '{e}'")
источник

in Сообщество Python Программистов
Ты показал результат print(type(result.fetchone()))
источник

in Сообщество Python Программистов
Следовательно, он возвращает None
источник

in Сообщество Python Программистов
V
если ты о строке проверки
if sqlite.check(sqlite.create_connection(config.SQL_PATH), message.chat.id) is None
А если ещё и доку читать, то можно не заниматься такой порнографией
источник

V

V in Сообщество Python Программистов
Ты показал результат print(type(result.fetchone()))
то что возвращает
<class 'NoneType'>
источник

in Сообщество Python Программистов
V
то что возвращает
<class 'NoneType'>
Неправда
источник

V

V in Сообщество Python Программистов
Неправда
Чейта
У меня возвращает это
источник