【发布时间】:2013-08-16 19:31:46
【问题描述】:
我从 youtube 的 v3 api 获取持续时间值。
然后我想将该值传递给转换 iso 格式的 isodate 函数 秒。
ytContentDetails = requests.get("https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=%s&key=%s"%(ytID, ytAPIkey)).json()
ytDUR = ytContentDetails['items'][0]['contentDetails']['duration']
print ytDUR
ytTime = isodate.parse_duration('%f') ytDUR
但我不断收到错误消息。
ytTime = isodate.parse_duration('%r')% ytDUR
File "/Library/Python/2.7/site-packages/isodate/isoduration.py", line 99, in parse_duration
raise ISO8601Error("Unable to parse duration string %r" % datestring)
ISO8601Error: Unable to parse duration string '%f'
我哪里错了?
我尝试将 %f 更改为不同的转换,但无济于事。
我认为这是一个线索......
parse_duration:
parses an ISO 8601 duration string into a timedelta or Duration object.
ytDUR 值输出类似 ....
PT6M19S
【问题讨论】:
-
对于我们这些没有 Youtube API 访问权限的人,你能给出
type(ytDUR), str(ytDUR)的输出吗? -
ok check edit...它基本上输出一个iso8601字符串
-
好的。所以该字符串不适用于
%f,它是用于浮点数的。为什么不只是ytTime = isodate.parse_duration(ytDUR)?它对我有用,即isodate.parse_duration('PT6M19S')。 -
K.i.S.S...谢谢!把它作为一个答案,这样我就可以相信你了。
-
谢谢!我很感激。
标签: python string youtube-api isodate