python3中的DateTime函数

2024-04-26 05:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“EntryDate”的csv文件,有些字段有日期,有些在mysql中为空。我有一个默认值,应该设置为“0000-00-00:00:00”,csv文件中的日期格式为dd/mm/yyyy HH:mm:SS 所以在我的pyhton脚本中,我使用datetime函数将其更改为正确的格式 d = datetime.strptime(row['EntryDate'], '%d/%m/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')

但我总是犯这个错误

ValueError: time data '' does not match format '%d/%m/%Y %H:%M:%S'

我一直在寻找解决方案,尝试了很多不同的方法,但我仍然会遇到这个错误, 非常感谢您的帮助。你知道吗


Tags: 文件csv函数脚本pyhtondatetime格式hh
1条回答
网友
1楼 · 发布于 2024-04-26 05:22:56

你可以这样做:

try:
    d = datetime.strptime(row['EntryDate'], '%d/%m/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')
except ValueError:
    d = '0000-00-00 00:00:00'

或者:

if row['EntryDate'].strip() == '':
    d = '0000-00-00 00:00:00'
else:
    d = datetime.strptime(row['EntryDate'], '%d/%m/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')

根据OP的评论,更新以显示对多个列执行此操作的一种方法:

columns = ['EntryDate', 'DateDeparture']
for column in columns:
    if row[column].strip() == '':
        d = '0000-00-00 00:00:00'
    else:
        d = datetime.strptime(row[column], '%d/%m/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S')
    # Do something with d here as you'll overwrite it on next iteration of loop.

相关问题 更多 >