Выдает ошибку SyntaxError: expected 'except' or 'finally' block на Пайтоне
Что делать с этим? Где мои ошибки

async def check_virustotal_url():
SyntaxError: expected 'except' or 'finally' block
Обратите внимание на отступы.
Между try и response разница в три пробела.
А между return result и except разница в четыре пробела, и еще какая-то скобка непонятная.
Можете убрать скобку и сдвинуть try на один пробел влево?
Ошибка SyntaxError: expected 'except' or 'finally' block в Python возникает, если за блоком try не следует блок except или finally.
Ошибка SyntaxError: expected 'except' or 'finally' block говорит о том, что Python ожидает завершение try блока — а в вашем коде внутри try нет завершающего except или finally до return, что нарушает синтаксис.
📌 Проблема в структуре try-except-finally
Вы написали try: и внутри него return result, но finally: написан после return, а это синтаксически недопустимо — finally не может идти после return, потому что тогда try как бы "не закрыт".
✅ Правильная структура:
Вот исправленный фрагмент:
python :
async def check_virustotal_url():
try:
cursor.execute("SELECT result FROM url_cache WHERE url = ?", (url,))
cached = cursor.fetchone()
if cached:
return f"Результат из кэша:\n{cached[0]}"
# Запрос к VirusTotal
headers = {"x-apikey": VIRUSTOTAL_API_KEY}
params = {"url": url}
response = requests.post (
" https://www.virustotal.com/api/v3/urls ",
headers=headers,
data=params
)
analysis_id = response.json()['data']['id']
report = requests.get(
f" https://www.virustotal.com/api/v3/analyses/{analysis_id} ",
headers=headers
)
stats = report.json()['data']['attributes']['stats']
malicious = stats['malicious']
total = sum(stats.values())
result = f"🔗 {url}\n⚠️ Заражено: {malicious}/{total}\n"
# Кэширование
cursor.execute("INSERT INTO url_cache VALUES (?, ?)", (url, result))
conn.commit()
return result
except Exception as e:
return f"❌ Ошибка проверки: {str(e)}"
🔍 Итог:
Удалите finally: — он не нужен, если вы уже возвращаете result в try.
Или, если хотите оставить finally, используйте его до return, а return сделайте после.
я могу только хелло ворлд на пайтоне написать
Я не знаю что за бред тут ранее пытались вам помочь, просто ваш блок try-except-finally не закрыт.
Вы забыли : (двоеточие) после finally