检查pythonlist中的日期时间并转换为字符串

检查pythonlist中的日期时间并转换为字符串,python,Python,如果列表中的任何元素是datetimeobject,我需要将其转换为日期格式(即;2012-01-01),并在其周围加上引号“”'2012-01-01' 我如何才能完成它?您可以使用repr(str()): lista = [datetimeobject,'test',32] 对于datetime.datetime对象: In [17]: x=datetime.date(2012,2,5) In [18]: str(x) # actually returns rep

如果列表中的任何元素是datetimeobject,我需要将其转换为日期格式(即;
2012-01-01
),并在其周围加上引号“”<代码>'2012-01-01'

我如何才能完成它?

您可以使用
repr(str())

lista = [datetimeobject,'test',32]
对于
datetime.datetime
对象:

In [17]: x=datetime.date(2012,2,5)

In [18]: str(x)              # actually returns repr(str(x)) in interactive prompt
Out[18]: '2012-02-05'

In [22]: print str(x)        # doesn't adds ''
2012-02-05

In [23]: print repr(str(x))  # get '' around solution
'2012-02-05'
您可以使用
repr(str())

对于
datetime.datetime
对象:

In [17]: x=datetime.date(2012,2,5)

In [18]: str(x)              # actually returns repr(str(x)) in interactive prompt
Out[18]: '2012-02-05'

In [22]: print str(x)        # doesn't adds ''
2012-02-05

In [23]: print repr(str(x))  # get '' around solution
'2012-02-05'
返回:

from datetime import datetime

convert_date = lambda dt: dt.strftime("'%Y-%m-%d'") if isinstance(dt, datetime) else dt
lista = [datetime.now(), 'test', 32]
map(convert_date, lista)
返回:

from datetime import datetime

convert_date = lambda dt: dt.strftime("'%Y-%m-%d'") if isinstance(dt, datetime) else dt
lista = [datetime.now(), 'test', 32]
map(convert_date, lista)

这并没有像请求的那样获得
(尽管您的输出表明它对熟悉
repr
str
之间的区别的人有用,并且在交互提示下调用了它们)…但是添加这些内容非常简单。很好的解决方案,这将节省我大量的输入!(他说的是datetime对象,很难,其中也包括小时数)@AlexanderStefanov还添加了
datetime
对象。这并没有像要求的那样获得
(虽然您的输出对熟悉
repr
str
之间的区别以及在交互提示下调用它们的人来说是这样的)……但添加这些内容非常简单。很好的解决方案,这将节省我大量的输入!(他说的是datetime对象,很难,其中也包括小时数)@AlexanderStefanov也添加了
datetime
对象。更改为
dt.strftime(“%Y-%m-%d”)
,您就完成了。谢谢,我没有意识到op实际上想要字符串中的单引号。更改为
dt.strftime(“%Y-%m-%d”)
一切就绪。完成。谢谢,我没意识到op实际上想要字符串中的单引号。
["'2012-10-19'", 'test', 32]