2016-02-12 86 views
2

我有數據以格式%Y-%m-%d%H進入:%M:%S.%f。Python Strptime偶爾會丟失微秒

因此,我使用基於該結構的數據進行工作,一旦出現藍色月亮出現問題。因此,當某些事情中斷時,我開始傾銷它,並且我注意到最後的微秒丟失了。

我假定這意味着它已經死了0,它不是送它在所有而不是發送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