Cómo reintentar solo una vez en la excepción en python

Puede que me esté acercando a esto de manera incorrecta, pero tengo una solicitud POST que sale:

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

Lo que potencialmente podría fallar por varias razones, algunas de ellas relacionadas con los datos, otras con fallas temporales, que debido a un punto final mal diseñado bien pueden regresar como el mismo error (el servidor hace cosas impredecibles con datos no válidos). Para detectar estos fallos temporales y dejar pasar a otros, pensé que la mejor manera de hacerlo sería volver a intentarlo una vez y luego continuar si el error vuelve a aparecer. Creo que podría hacerlo con un intento anidado / excepto, pero a mí me parece una mala práctica (¿y si quiero intentarlo dos veces antes de rendirme?)

Esa solución sería:

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

¿Hay una mejor manera de hacer esto? Alternativamente, ¿hay una mejor manera en general de lidiar con respuestas HTTP potencialmente defectuosas?

Respuestas a la pregunta(1)

Su respuesta a la pregunta