【发布时间】:2018-03-11 09:23:32
【问题描述】:
我绝对是 Python 的新手。我已经搜索了几个小时来找到解决我的问题的方法,但我只是没有解决我的问题。希望你能帮我解决这个问题。
我有一个包含日期和条目的列表,例如 2 小时前。现在,我喜欢通过从 today() 中减去文本值(2 小时前)来将列表转换为日期。
如果我在 timedelta 表达式中使用整数,则该脚本有效。一旦我要使用一个变量,我就会得到这个错误。
TypeError: unsupported type for timedelta minutes component: list
我已经尝试过str(time_delta)
和list(map(int, time_delta))
import datetime
import re
tday = datetime.datetime.today()
my_list = ['2 hours back', '5 mins back', '2 days back', '2018-03-10']
my_result = []
for item in my_list:
if 'mins' in item:
date_cor = re.findall('\d+', item)
time_delta = datetime.timedelta(minutes=date_cor) # date_cor
new_item = tday - time_delta
my_result.append(new_item)
elif 'hours' in item:
date_cor = re.findall('\d+', item)
time_delta = datetime.timedelta(hours=5) # date_cor
new_item = tday - time_delta
my_result.append(new_item)
elif 'days' in item:
date_cor = re.findall('\d+', item)
time_delta = datetime.timedelta(days=5) # date_cor
new_item = tday - time_delta
my_result.append(new_item)
else:
my_result.append(item)
for rows in my_result:
print(rows)
我该如何解决这个问题?谢谢!
【问题讨论】:
标签: python-3.x list timedelta