以数据时间格式传输列表字符串值

时间:2016-11-04 10:28:15

标签: python

我有几个数据时间值,列为字符串

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

关于我哪里出错的任何想法?

2 个答案:

答案 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。这是好变量名称派上用场的地方