Python 3中的DateTime函数错误

问题描述 投票:-1回答:1

我有一个名为'EntryDate'列的csv文件,有些字段有日期,有些在mysql中是空的我有一个默认值应设置为'0000-00-00 00:00:00',日期在csv文件的格式为dd / mm / yyyy HH:MM:SS所以inmy 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'

我已经搜索了一个解决方案并尝试了许多不同的方法我仍然会收到此错误,非常感谢您的帮助。

python mysql python-3.x datetime
1个回答
1
投票

你可以这样做:

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.
© www.soinside.com 2019 - 2024. All rights reserved.