2017-05-15 15 views
0

次のコードを使用してデータベースにデータを入力しています。 from datetime import datetimeをインポートし、djangoのDateTimeFieldに保存するdatetimeオブジェクトを作成しようとしています。私のコードで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' 

文字列DOESがフォーマットと一致するようです。私はここで間違って何をしていますか?

答えて

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")) 
関連する問題