2016-02-10 5 views
0

Я получаю следующую ошибку при чтении из файла csv с использованием python, когда я запускаю ниже кода:Python strptime: time data '"2016-02-02"' не соответствует формату '% Y-% m-% d'

rel_date_object = datetime.datetime.strptime(row[29], '%Y-%m-%d') 

строка [29] - это строка, которая содержит дату.

Это моя ошибка, я получаю в моем файле журнала:

ERROR:root: time data '"2016-02-02"' does not match format '%Y-%m-%d' 

Я не знаю, где я буду неправильно. Пожалуйста, помогите, спасибо

ответ

1

я собираюсь угадать ваша строка содержит "символы.

1

Это позволит устранить проблему

rel_date_object = datetime.datetime.strptime(row[29][1:-1], '%Y-%m-%d') 
+0

Одна вещь, чтобы отметить здесь. строка [29] [1: -1] работает быстрее, чем строка [29] .strip ('' ') Предположим, z =' "2016-02-12" ' % timeit z. полоса ('' ') 10000000 петли, лучше всего 3: 169 нс на петлю % timeit z [1: -1] 10000000 петли, лучше всего 3: 64,4 нс на петлю –

1

вы можете использовать str.strip для удаления "

rel_date_object = datetime.datetime.strptime(row[29].strip('"'), '%Y-%m-%d') 
2

Если ваша переменная row[29] всегда содержит строку, указанную вами (с помощью "), вы можете изменить соответствующее выражение как в:

rel_date_object = datetime.datetime.strptime(row[29], '"%Y-%m-%d"') 
+0

спасибо, это сработало! –