我陷入了一个似乎非常愚蠢的问题:我同时使用mysql.connector和MySQLdb来检索一些datetime数据,当我将fetchall()值放在数组中时,我需要解析每一行,但是当datetime有任何“双零”作为秒时,这部分datetime被忽略,解析失败。以下是场景:
mycursor.execute("select arrival_time from queue_element where status='Pending'")
arrival = mycursor.fetchall()
假设它返回两行:
>> arrival
>> [(datetime.datetime(2019, 10, 7, 2, 45, 48),), (datetime.datetime(2019, 10, 7, 2, 46),)]
In the database:
2019-10-07 02:45:48
2019-10-07 02:46:00
因此,当我尝试用datetime.datetime解析它时,只有5个值的行(秒被忽略而不是显示为00)失败,代码中断。以下是我努力实现这一目标的方式:
for item in arrival:
arrival_parsed = str(item).replace("(datetime.datetime(", "") # extracts only the numbers
arrival_parsed = str(arrival_parsed).replace("),)", "") # extracts only the numbers
arrival_parsed = str(datetime.strptime(arrival_parsed,'%Y, %m, %d, %H, %M, %S')) # works fine if seconds != 00, breaks if equal
The error:
ValueError: time data '2019, 10, 7, 2, 46' does not match format '%Y, %m, %d, %H, %M, %S'
试图玩datetime,但运气不佳。有没有关于如何正确解析它或用零检索值的提示
谢谢
我认为一个简单的if-else条件可以做到这一点。请尝试使用以下代码:
相关问题 更多 >
编程相关推荐