这里有点新手。
我有一个程序从MySQL数据库中获取结果。 它选择字段Id和ship_date,查询仅根据给定的Id搜索返回的记录。 结果应该是2个或更多日期。 我的目标是格式化日期并比较它们之间的日期。 结果被放入单独的列表中,因此我得到两个这样的列表:
[(datetime.datetime(2012, 12, 28, 0, 0),), (datetime.datetime(2012, 12, 28, 0, 0),)]
和
[(datetime.datetime(2012, 06, 15, 0, 0),), (datetime.datetime(2012, 08, 19, 0, 0),)]
例如。
但是,当我尝试将整个列表转换为可读格式时,我发现了一段代码:
ship_date = [dt.strftime("%Y-%m-%d") for dt in ship_date]
我总是得到一个没有属性strftime的错误。 我已经尝试将它们转换为字符串然后使用strftime,但我得到的错误是str没有属性strftime。 我完全失去了。
顺便说一句,我已导入日期时间
有没有人可以通过任何方式将这些列表(其中2个)转换为可读格式,例如
2012-12-28, 2012-12-28
由于
答案 0 :(得分:1)
给定列表包含具有datetime的元组,而不仅仅是datetime。所以这些物品应该打开包装。
>>> ship_dates = [(datetime.datetime(2012, 12, 28, 0, 0),), (datetime.datetime(2012, 12, 28, 0, 0),)]
>>> [dt.strftime("%Y-%m-%d") for dt in ship_dates]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'strftime'
>>> [dt.strftime("%Y-%m-%d") for (dt,) in ship_dates]
['2012-12-28', '2012-12-28']
或者您可以省略(..)
:
>>> [dt.strftime("%Y-%m-%d") for dt, in ship_dates]
['2012-12-28', '2012-12-28']