La suma de los términos de la tupla timedelta con multiplicadores adecuados debe dar su respuesta. diff.days*24*60*60 + difference.seconds
from datetime import datetime
now = datetime.now()
...
later = datetime.now()
diff = later-now
diff_in_seconds = diff.days*24*60*60 + diff.seconds
La variable 'diff' es un objeto timedelta que es una tupla de (días, segundos, microsegundos) como se explica en detalle aquí https://docs.python.org/2.4/lib/datetime-timedelta.html. Todas las demás unidades (horas, minutos ...) se convierten a este formato.
>> diff = later- now
>> diff
datetime.timedelta(0, 8526, 689000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> 8527
Otra forma de verlo sería si en lugar de más tarde, ahora (por lo tanto, una diferencia de tiempo positivo), en su lugar tiene una diferencia de tiempo negativo (antes-ahora), en el que el tiempo transcurrido entre los dos es siendo el mismo que en el ejemplo anterior
>> diff = earlier-now
>> diff
datetime.timedelta(-1, 77873, 311000)
>> diff_in_seconds = diff.days*24*60*60 + diff.seconds
>> diff_in_seconds
>> -8527
por lo tanto, incluso si estamos seguros de la duración es de menos de 1 día, es necesario tomar el término día en cuenta, ya que es un término importante en caso de diferencia de tiempo negativa.
Esto da como resultado que el argumento "TypeError: int() debe ser una cadena, un objeto similar a un byte o un número, no un error 'datetime.timedelta'" en Python3. Ver la respuesta de Robert Longson. – typoerrpr