Python strptime 偶尔会丢失微秒

Python Strptime Occasionally Missing Microseconds

我传入的数据格式为 %Y-%m-%d %H:%M:%S.%f。

因此,我根据该结构处理数据,一旦出现蓝色月亮,就会出现问题。所以我开始在出现问题时将其丢弃,我注意到最后的微秒丢失了。

我假设这意味着它在 0 上死了,它根本不发送它而不是发送 .000000

在我的头顶,我可以用“.”来分割它。每次都计算 len。如果它低于微秒的长度,则将其拆分为 %Y-%m-%d %H:%M:%S 但是否有更简洁的方法来处理丢失的毫秒并将其替换为 000?

我捕获了丢失的毫秒数的转储,并在它之后立即抛出一个 ValueError。我没有考虑它我想我假设它发送了 .000000 但这似乎是最明显的问题

为什么不两者都试一下呢?

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)