我目前正在尝试并且未能将日期(“2017-01-25T09:00”)转换为%Y-%m-%d%H:%M
我尝试使用strptime()但我得到TypeError:strptime()参数1必须是str,而不是list
我是否需要在列表中的每个项目上进行尝试?在列表中,日期显示更多谢谢。
代码中的步骤:
以下是我目前正在尝试的内容:
of string
输出的csv文件的精简版本如下:
for line in body:
#newMessageDate = line.get('messagedate')
if line:
date_formats = ["%Y-%m-%d%T%H:%M"]
for date_fmt in date_formats:
try:
line = datetime.datetime.strptime(line, date_fmt).strftime('%Y-%m-%d %H:%M')
except ValueError:
continue
else:
break
提前致谢!
答案 0 :(得分:1)
您似乎正在使用DictReader
从CSV文件中读取数据。这意味着line
是一个字典,其中包含当前行中的键及其值,如当前注释行#newMessageDate = line.get('messagedate')
中所示。
在这种情况下,您应该使用line.get('messagedate')
而不是line
本身。
newMessageDate = line.get('messagedate')
newMessageDate = datetime.datetime.strptime(newMessageDate, date_fmt).strftime('%Y-%m-%d %H:%M')
(我正在跳过循环和try/except
,因为它们没有变化。)
不幸的是,您没有说明line
的外观。从最新评论来看,您似乎不会读取CSV而是JSON,并且line
是list
而不是dict
。在这种情况下,您必须使用相应的索引访问日期元素,例如newMessageDate = line[3]
(假设日期位于列表的第四个位置)。其余的答案仍然存在。