Python strptime不会从导入的CSV解析数据

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

我正在尝试导入包含“ created_at”日期的行的CSV。我收到循环错误。

我当前尝试导入的日期字符串为'2020-05-14 16:10:21.360520 + 00:00',位于我的csv文件的第[2]行上。

这是我尝试使用的代码:

for line in import_csv:
    if line:
        import_data = BlogLink()
        created_at = line[2].split('.')
        import_data.created_at = datetime.datetime.strptime(created_at[0], "YYYY-MM-DD HH:MM:SS")

这给了我错误:

time data '2020-05-14 16:10:21' does not match format 'YYYY-MM-DD HH:MM:SS'

我的备用代码是这个:

for line in import_csv:
    if line:
        import_data = BlogLink()
        created_at = line[2].split('.')
        import_data.created_at = datetime.datetime.strptime(created_at[0], "%Y-%m-%d %H:%M:%S")

这给了我错误:

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

(即,甚至不尝试包括时间数据)。我在这里做错了什么?

python django strptime
1个回答
0
投票

PEBCAK在这里。我的问题是import_data.last_edited的后续行中有未编辑对象的空白行。我已修补了该字段为空时跳过的代码。

for line in import_csv:
    if line:
        import_data = BlogLink()
        import_data.description = line[0]
        import_data.link = line[1]
        import_data.created_by = request.user
        import_data.created_at = datetime.datetime.strptime(line[2], '%Y-%m-%d %H:%M:%S.%f%z')
        if line[3]:
            import_data.last_edited = datetime.datetime.strptime(line[3], '%Y-%m-%d %H:%M:%S.%f%z')
        else:
            import_data.last_edited = None
        import_data.save()

是工作代码。

© www.soinside.com 2019 - 2024. All rights reserved.