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

2024-04-26 03:53:43 发布

您现在位置:Python中文网/ 问答频道 /正文

从这本词典中找出最接近日期范围的最有可能的方法是什么

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)))

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


Tags: 方法formatdatestring格式codes价值观本例