Найти - Пользователи
Полная версия: Обработка ошибки при подключении к сайту
Начало » Python для новичков » Обработка ошибки при подключении к сайту
1
ZiG
Так как я новичок, опыт и знания по теме обработка ошибок нулевая.
Есть код с использованием библиотек requests и time

 import time
import requests
while True:
    Тут код с подключением к API сайта с помощью модуля requests и вытягиванием от туда инфы
    Тут код обработки этой инфы
нужно сделать так:
 import time
import requests
while True:
    while True:
        код с подключением
        Если инфа получена то break
        Иначе (т. е. ошибка с подключением) ждать минуту и опять повторить
    код обработки этой инфы
Сильно не ругайтесь. Буду благодарен за помощь
FishHook
ZiG
нужно сделать так:
И нафига это вам нужно?
Я - новичок, ничего не знаю и не понимаю, но мне нужно вот так! Ну, если вам нужно, вы делайте, какие проблемы. А если вам нужно узнать, как правильно решаются те или иные вопросы, то вам следовало бы сначала по человечески описать саму задачу, не то как вы делаете, а то что вы делаете. У вас же есть изначальная постановка задачи, без ваших потуг в коде, вот эту постановку тезисно и предъявите.
doza_and
FishHook
без ваших потуг в коде, вот эту постановку тезисно и предъявите.
Не знаю как было раньше, оно правилось, но сейчас оно выглядит именно как тезисы :). Да и помимо обязательной постановки задачи попытки создания кода тоже приветствуются.

Но непонятно в чем у вас затык. Кончились знания синтаксиса?
Ну тогда смотрите документацию
Конструкция Если … то - if … else
Подождать - time.sleep
ZiG
 import requests
import time
sred = 0
mas = []
while True:
    url = f'https://api.exmo.com/v1/order_book/?pair=USD_RUB&limit=1'
    response = requests.get(url).json()['USD_RUB']
    response['ask'], response['bid']
    usd_rub_ask = float(response['ask'][0][0]) 
    usd_rub_bid = float(response['bid'][0][0])
    sred = (usd_rub_ask + usd_rub_bid) / 2
    mas.append(sred)
Примерно так. При обрыве связи, понятное дело выскакивает ошибка. И программа стопарится.
Можно ли как-нибудь наколдовать, что бы, при обрыве связи, программа не стопарилась, а делала паузу на 60 сек, потом проверяла связь и если ее нет, то опять стопарилась на 60 сек?
ZiG
Rodegast
https://pythonworld.ru/tipy-dannyx-v-python/isklyucheniya-v-python-konstrukciya-try-except-dlya-obrabotki-isklyuchenij.html
Реально, ни один час потратил на изучение этого раздела, в разных учебных пособиях смотрел, и как бы не объяснялось, голову сломал. А тут все более наглядно. Спасибо.

Решение проблемы:
 import requests
import time
sred = 0
mas = []
while True:
    while True:
        try:
            url = f'https://api.exmo.com/v1/order_book/?pair=USD_RUB&limit=1'
            response = requests.get(url).json()['USD_RUB']
            response['ask'], response['bid']
            usd_rub_ask = float(response['ask'][0][0])
            usd_rub_bid = float(response['bid'][0][0])
        except:
            print('Связи нет, подождем минутку')
            time.sleep(60)
        else:
            break
    sred = (usd_rub_ask + usd_rub_bid) / 2
    mas.append(sred)
    print(mas)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB