2017-05-15 73 views
0

我正在使用下面的一段代码来填充我的数据库。我导入了from datetime import datetime,并试图创建一个datetime对象来保存到django的DateTimeField。为什么strptime不能在我的代码中工作?

with open(os.path.join(settings.BASE_DIR, 'media', 'attendance', 'populate.csv')) as f: 
     reader = csv.reader(f) 
     for row in reader: 
      obj, created = Attendance.objects.get_or_create(
       employee_id=row[0], 
       punch=datetime.strptime(row[1], "%Y%m%d %H%M"), 
       ) 

这是我得到的错误。

ValueError at /attn/populate/ 
time data ' 20170604 0600' does not match format '%Y%m%d %H%M' 

看起来好像字符串的格式匹配。我在这里做错了什么?

回答

2

字符串是' 20170604 0600',请注意领先的空格。

格式改为' %Y%m%d %H%M',或使用strip从字符串中删除任何开头或结尾空格:字符串

for row in reader: 
      obj, created = Attendance.objects.get_or_create(
       employee_id=row[0], 
       punch=datetime.strptime(row[1].strip(), "%Y%m%d %H%M")) 
+0

感谢。我错过了。 – MiniGunnR

1

额外的前导空格

from datetime import datetime 

print(datetime.strptime(" 20170604 0600", " %Y%m%d %H%M")) 
print(datetime.strptime("20170604 0600", "%Y%m%d %H%M")) 
相关问题