Повторять запросы пока не будет получен ответ

У меня есть зацикленная программа, которая в начале каждого цикла делает запросы на 3 сайта, получает оттуда данные, иногда какой-то сайт может не отвечать. Мне нужно, чтобы программа после любого неудачного получения данных ждала 5 секунд и отправляла заново запрос и как только получила - сразу продолжала дальше код.

Мой код:

session = requests.Session()
while True:
   try:
       a = session.get('a.com',timeout=7).json()
       b = session.get('b.com',timeout=7).json()
       c = session.get('c.com',timeout=7).json()
   except Exception:
       while Exception:
       sleep(5)
       a = session.get('a.com',timeout=7).json()
       b = session.get('b.com',timeout=7).json()
       c = session.get('c.com',timeout=7).json()

# тут дальше идет код, взаимодействующий с полученными данными

Ответы (1 шт):

Автор решения: Сергей Ш
def res(url, session):
    while True:
        try:
            a = session.get(url, timeout=7).json()
            return a
        except Exception:
            sleep(5)

session = requests.Session()
urls = ['a.com', 'b.com', 'c.com']
for url in urls:
    a = res(url, session)
→ Ссылка