有没有简单的方法将ISO 8601持续时间转换为timedelta?

Alk*_*dus 18 python datetime timedelta python-datetime

给定ISO 8601持续时间字符串,如何将其转换为datetime.timedelta

这不起作用:

timedelta("PT1H5M26S", "T%H%M%S")
Run Code Online (Sandbox Code Playgroud)

Alk*_*dus 28

我发现isodate库正是我想做的

isodate.parse_duration('PT1H5M26S')
Run Code Online (Sandbox Code Playgroud)


Jor*_*ren 9

如果您使用 Pandas,则可以使用pandas.Timedelta. 构造函数接受 ISO 8601 字符串,pandas.Timedelta.isoformat您可以将实例格式化回字符串:

>>> import pandas as pd
>>> dt = pd.Timedelta("PT1H5M26S")
>>> dt
Timedelta('0 days 01:05:26')
>>> dt.isoformat()
'P0DT1H5M26S'
Run Code Online (Sandbox Code Playgroud)