我有几个数据时间值,列为字符串
s = ["19 Nov 2015 18:45:00.000","19 Nov 2015 18:45:00.000"]
现在我想将它们转换为strptime格式。只需一个值,我就可以这样做:
d = datetime.datetime.strptime(s, "%d %b %Y %H:%M:%S.%f")
但是当我尝试这个时
results = [datetime.strptime(s, "%d %b %Y %H:%M:%S.%f") for s in results]
我收到以下错误:
Traceback (most recent call last):
File "sample19.py", line 5, in <module>
results = [datetime.datetime.strptime(s, "%d %b %Y %H:%M:%S.%f") for i in s]
TypeError: must be string, not list
关于我哪里出错的任何想法?
答案 0 :(得分:3)
您的代码应为
results = [datetime.datetime.strptime(i, "%d %b %Y %H:%M:%S.%f") for i in s]
这将使用元素而不是完整列表
答案 1 :(得分:2)
你只是让列表理解错误。
有这个清单
string_dates = ["19 Nov 2015 18:45:00.000", "19 Nov 2015 18:45:00.000"]
您将其转换为datetime
个对象,如下所示:
results = [datetime.datetime.strptime(date, "%d %b %Y %H:%M:%S.%f") for date in string_dates]
当您打算通过s
时,您的代码无效,因为您已将i
传递给strptime。这是好变量名称派上用场的地方