繁体   English   中英

为什么strptime在我的代码中不起作用?

[英]Why isn't strptime not working in my code?

我正在使用以下代码来填充数据库。 我已经from datetime import datetime ,正在尝试创建一个datetime对象以保存到Django的DateTimeField中。

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'

字符串似乎与格式匹配。 我在这里做错了什么?

字符串为' 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"))

字符串中额外的前导空格

from datetime import datetime

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM