gpt4 book ai didi

python - TypeError : can't compare datetime. timedelta float

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:51 31 4
gpt4 key购买 nike

我正在使用我的 python 脚本来计算开始日期和结束日期格式之间的持续时间,例如 2014052016000020140520170000 这样我就可以得到小时数。

我在使用这段代码时遇到了问题:

if epgDuration >= 0.10 and epgDuration <= 0.30:
epgwidth = "250"

当我尝试比较 0.10 分钟和 0.30 分钟之间的时间范围时出现错误。

我得到的错误是:TypeError: can't compare datetime.timedelta to float。

错误跳到这一行:

if epgDuration >= 0.10 and epgDuration <= 0.30:

结果如下:

14:44:55 T:1580  NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 2:30:00
14:44:55 T:1580 NOTICE: 3:00:00
14:44:55 T:1580 NOTICE: 1:00:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 1:00:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00
14:44:55 T:1580 NOTICE: 0:30:00

这是我用来持续时间的代码:

for row in programs:
program_startdate = str(row[2])
program_endDate = str(row[3])

try:
start_date = datetime.datetime.strptime(program_startdate, "%Y%m%d%H%M%S")
end_date = datetime.datetime.strptime(program_endDate, "%Y%m%d%H%M%S")
except TypeError:
start_date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(program_startdate, "%Y%m%d%H%M%S")))
end_date = datetime.datetime.fromtimestamp(time.mktime(time.strptime(program_endDate, "%Y%m%d%H%M%S")))

#workout the duration times to get the program time
epgDuration = end_date - start_date

if epgDuration >= 0.10 and epgDuration <= 0.30:
epgwidth = "250"

elif epgDuration >= 1.00 and epgDuration <= 1.29:
epgwidth = "500"
print epgwidth

最佳答案

事实上,您不能将 timedelta 与浮点值进行比较。

可以将对象转换为秒:

if 600 <= epgDuration.total_seconds() <= 1800:

10 分钟是 600 秒,30 分钟是 1800 秒。

或者创建新的 timedelta() 对象进行比较:

epgwidth = "0"

if timedelta(minutes=10) <= epgDuration <= timedelta(minutes=30):
epgwidth = "250"

elif timedelta(hours=1) <= epgDuration <= timedelta(hours=1.5):
epgwidth = "500"

我在 if 语句之前为 epgwidth 指定了一个默认值,以防时差不在 10-30 分钟或 1-1.5 小时内范围。

关于python - TypeError : can't compare datetime. timedelta float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25714670/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com