2016-02-12 4 views
2

У меня есть данные, поступающие во входящие с форматом% Y-% m-% d% H:% M:% S.% f.Python Strptime Иногда отсутствующие микросекунды

Поэтому я работаю с данными, основанными на этой структуре, и как только синяя луна что-то пойдет не так. Поэтому я начал сбрасывать его, когда что-то ломается, и я заметил, что микросекунды в конце пропали.

я предполагаю, это означает, что он был мертв на 0, и это не посылая его на всех вместо отправки .000000

из верхней части моей головы я мог разделить его «» и подсчитывать len каждый раз. Разделите его на% Y-% m-% d% H:% M:% S, если он меньше длины микросекунд, но есть более простой способ борьбы с миллисекундами, отсутствующими и заменяющими его 000?

Я поймал дамп миллисекунд, отсутствующих, и выброс ValueError сразу после него. Я не думал об этом, я думаю, я предположил, что он отправил .000000, но это кажется наиболее очевидной проблемой. http://puu.sh/n4BLT/9b3fb473fb.png

ответ

2

Почему бы просто не попробовать оба?

def parse_txt(txt): 
    try: 
     return datetime.datetime.strptime(txt, "%Y-%m-%d %H:%M:%S.%f") 
    except ValueError: 
     return datetime.datetime.strptime(txt, "%Y-%m-%d %H:%M:%S") 

parse_txt("2001-01-01 01:01:01") # => datetime.datetime(2001, 1, 1, 1, 1, 1) 
+0

Бог блин ... это даже не похоже на то, что я не думал об этом. Я думал, что он проигнорирует% f, проверит и увидит, что он потерпел неудачу, а затем забыл. – PoweredByCoffee

+0

Это был долгий день. Спасибо, что потратили время, жаль, что это было так бессмысленно. – PoweredByCoffee

+0

Ваше кофейное значение низкое – donkopotamus

Смежные вопросы