Jak ponowić próbę tylko raz na wyjątku w Pythonie

Być może zbliżam się do tego w niewłaściwy sposób, ale mam żądanie POST wychodzące:

response = requests.post(full_url, json.dumps(data))

Które mogą potencjalnie zawieść z wielu powodów, niektóre są związane z danymi, niektóre z nich są tymczasowymi awariami, które z powodu źle zaprojektowanego punktu końcowego mogą powrócić jako ten sam błąd (serwer robi nieprzewidywalne rzeczy z nieprawidłowymi danymi). Aby złapać te tymczasowe awarie i pozwolić innym przejść, pomyślałem, że najlepszym sposobem na to jest ponowienie próby raz, a następnie kontynuowanie, jeśli błąd zostanie ponownie podniesiony. Sądzę, że mógłbym to zrobić za pomocą zagnieżdżonej próby / wyjątku, ale wydaje mi się, że to zła praktyka (co jeśli chcę spróbować dwa razy, zanim się poddam?)

Rozwiązaniem byłoby:

try:
    response = requests.post(full_url, json.dumps(data))
except RequestException:
    try:
        response = requests.post(full_url, json.dumps(data))
    except:
        continue

Czy jest lepszy sposób, aby to zrobić? Czy istnieje ogólnie lepszy sposób radzenia sobie z potencjalnie wadliwymi odpowiedziami HTTP?

questionAnswers(1)

yourAnswerToTheQuestion