从日期字符串中检测最接近的日期格式?

时间:2017-11-02 18:49:42

标签: python

从这本字典中获取最接近日期范围的最pythonic方法是什么?

DATE_FORMAT_CODES = {
    '102': ('CCYYMMDD', '%Y%m%d'),
    '203': ('CCYYMMDDHHMM', '%Y%m%d%H%M'),
    '204': ('CCYYMMDDHHMMSS', '%Y%m%d%H%M%S'),
    '602': ('CCYY', '%Y'),
    '610': ('CCYYMM', '%Y%m'),
}

所以我想说我有一个价值:

date_string = '201704256'

我想要一种能够检测最接近的日期格式并返回其密钥的方法。所以在这种情况下,它会返回'102'

我们可以假设日期字符串始终采用正确的格式,并且它始终符合上面指定的格式。换句话说,每个可能的输入都将以CC开头,然后是YY,然后是MM等。唯一的问题是输入值的长度。

我尝试过这样的事情:

min(DATE_FORMAT_CODES.values(), key=lambda x:abs(x - len(date_string)))

但是我只访问每个元组的第一个元素,然后只返回其值的键。

1 个答案:

答案 0 :(得分:0)

key, _ = min(DATE_FORMAT_CODES.items(), key=lambda item: abs(len(item[1][0]) - len(date_string)))