twopercent, в общем случае это должно выглядеть так:
try:
# попытаться сделать что-то
except FileNotFoundError:
# Как-то обработать ОЖИДАЕМОЕ исключение
except PermissionError:
# Обработать ошибку отсутствия прав на нужное действие
except SomeOtherError:
# Обработать "какую-то другую" ошибку
except Exception as ex:
# Обработать все остальные ошибки.
Т.е. сперва обрабатываете сначала ту ошибку, которую ожидаете получить, потом - менее вероятные/равновероятные, но требующие другой логики, и уже в конце - обрабатываете все остальные.
И да, не всегда и не везде нужно указывать столько блоков. В некоторых, совсем базовых случаях, достаточно вообще одного, основного, но это уже больше вопрос опыта и четкого понимания того, как работает тот или иной код.
Сергей,
Судя по вашим ответам, проблема явно не в этом, но вообще - посмотреть, например на гитхабе, обычно там есть файл requirements, плюс в setup файле должны быть прописаны.
При запроси команды response выдаёт вот такую ошибку.
Ну так приводите полный код, в том числе тот участок, где выполняются указанные действия. Если это весь код - возможно, проблема в устаревших зависимостях, однако в общем случае, в приведенном виде код работает без ошибок.
Знаете, в порядке бреда конечно, но может стоит хотя-бы попытаться пройтись по офф.документации библиотеки для работы с соответствующей базой, попрактиковаться на простых примерах, после чего вникнуть в текст ошибки и попытаться исправить ее?
Forraz, так-же как и любой другой тип данных - кортеж это просто один из структур данных, который не зависит от типов содержимого.
Примеры: офф.доки w3schools
Ну, не совсем так - драйвер, если упрощенно, принимает любой тип данных, допускающий наличия более одного элемента, а строка является таковой, поэтому даже при добавлении одного элемента нужно передавать кортеж (либо список, но кортеж меньше ресурсов потребляет и является "стандартом")
Но почему строка не переводится в кортеж?
А почему она должна это делать так как вы этого хотите? Простой пример как это работает на практике:
Forraz, серьезно? Советую сравнить код запроса/ошибку из вопроса с запросом/ошибкой из вашего последнего комментария, после чего еще раз прочитать мой ответ (не коммент).
Forraz, собственно передаете правильно. Проблема в том, что базы данных могут принимать только простые типы данных (строка/число и т.д.), в то время как вы пытаетесь передать что-то, что нельзя привести к такому типу (очень подозреваю, что какой-то класс)
Где и как использовать? Куда скопировать?
"Скопировать" можно разными способами, но в подавляющем большинстве случаев, чтобы иметь возможность нормально получать этот урл и отличать его от других - нужно хранить в виде пары "ключ - значение" и пока-что не вижу не одной причины, чтобы в других местах не использовать вместо этого подстановку ника через f-строки.
Как минимум это уменьшит затраты ресурсов на хранение.
Т.е. сперва обрабатываете сначала ту ошибку, которую ожидаете получить, потом - менее вероятные/равновероятные, но требующие другой логики, и уже в конце - обрабатываете все остальные.
И да, не всегда и не везде нужно указывать столько блоков. В некоторых, совсем базовых случаях, достаточно вообще одного, основного, но это уже больше вопрос опыта и четкого понимания того, как работает тот или иной код.