我正在尝试导入包含“ 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'
(即,甚至不尝试包括时间数据)。我在这里做错了什么?
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()
是工作代码。