我正在编写一个需要timedelta输入的函数作为字符串传入.用户必须输入类似"32m"或"2h32m",甚至"4:13"或"5hr34m56s"的内容......是否有图书馆或其他已经实施此类内容的内容?
为了感兴趣,我想将视频持续时间从YouTubes转换ISO 8601为秒.为了将来证明我的解决方案,我选择了一个非常长的视频来测试它.
API提供此期限 - "duration": "P1W2DT6H21M32S"
我尝试使用stackoverflow.com/questions/969285中的dateutil建议解析此持续时间.
import dateutil.parser
duration = = dateutil.parser.parse('P1W2DT6H21M32S')
Run Code Online (Sandbox Code Playgroud)
这引发了一个例外
TypeError: unsupported operand type(s) for +=: 'NoneType' and 'int'
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
给定datetime.timedelta,如何将其转换为ISO 8601持续时间格式的字符串?
当然,
>>> iso8601(datetime.timedelta(0, 18, 179651))
'PT18.179651S'
Run Code Online (Sandbox Code Playgroud)