如果“这是一个约会”那么“做我说的话” -

时间:2015-11-28 14:48:41

标签: python

如何编写if语句,尝试识别变量是否为格式为%Y-%m-%d或%Y-%m的日期?

像这样:

for i in list:  
    for element in i:  
        if element is a date:  
            list2.append(element)

列表是: [['日期','价值'],['2002-03','12 .9']]

我是: ['日期','价值']和['2002-03','12 .9']

元素是: '日期','价值','2002-03','12 .9'

2 个答案:

答案 0 :(得分:2)

假设您的输入是字符串,您可以使用datetime包使用以下验证。

list = [['Date', 'Value'], ['2002-03', '12.9'],['2001-01','11.6']]
list2=[]
for i in list:
    for element in i:
        try:
            datetime.datetime.strptime(element, '%Y-%m')
            list2.append(element)
        except ValueError:
            continue
print list2

根据您的情况进行调整:

['2002-03', '2001-01']

输出是:

Request

答案 1 :(得分:1)

一种解决方案是编写一个函数,尝试将值解析为日期,循环遍历您想要支持的所有格式。如果它能够解析,则返回Database.BeginTransaction()(或者,您可以返回已解析的值),如果所有格式都不起作用,则返回True

False

将此应用于您的代码,它看起来像这样:

def is_date(s):
    for format in ('%Y-%m-%d', '%Y-%m'):
        try:
            d = datetime.strptime(s , format)
            return True
        except ValueError:
            pass
    return False