如何使用python检查日期是否为空?

如何使用python检查日期是否为空?,python,python-3.x,amazon-web-services,aws-lambda,Python,Python 3.x,Amazon Web Services,Aws Lambda,startdate和enddate值来自jenkin到lambda。 在这段代码中,我试图使用event[“start_date”]和event[“end_date”]获取值,它工作正常,但是如果startdate和enddate不可用,那么代码应该自动取今天和昨天的日期 我是python新手,有人能帮我吗 我试了如下,但我得到了错误。 如果我提到“startdate和enddate为none”,并将这两个值都设置为none,那么它可以工作,但我需要实现代码中提到的内容,因为我将AWS lamb

startdate
enddate
值来自jenkin到lambda。 在这段代码中,我试图使用
event[“start_date”]和event[“end_date”]
获取值,它工作正常,但是如果
startdate
enddate
不可用,那么代码应该自动取今天和昨天的日期

我是python新手,有人能帮我吗

我试了如下,但我得到了错误。 如果我提到“startdate和enddate为none”,并将这两个值都设置为none,那么它可以工作,但我需要实现代码中提到的内容,因为我将AWS lambda与python一起使用

import datetime
from datetime import timedelta

dateformat = "%Y-%m-%d"
startdate = datetime.datetime.strptime("", dateformat)
enddate = datetime.datetime.strptime("", dateformat)
# Both startdate and enddate values come from Jenkin to lambda  - 
event["start_date"] and event["end_date"]
if (startdate and enddate) == "":
    startdate = datetime.date.today()
    enddate = startdate - datetime.timedelta(days = 1)
    print('yesterday : ', enddate)  
    print('Today : ', startdate)
当前错误输出:

Traceback (most recent call last):
  File "variable_value_change.py", line 10, in <module>
    startdate = datetime.datetime.strptime("", dateformat)
  File "C:\Users\336635743\AppData\Local\Programs\Python\Python37-32\lib\_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "C:\Users\336635743\AppData\Local\Programs\Python\Python37-32\lib\_strptime.py", line 359, in _strptime
   (data_string, format))
ValueError: time data '' does not match format '%Y-%m-%d'
回溯(最近一次呼叫最后一次):
文件“variable_value_change.py”,第10行,在
startdate=datetime.datetime.StrTime(“,dateformat”)
文件“C:\Users\336635743\AppData\Local\Programs\Python\Python37-32\lib\ \u strtime.py”,第577行,在_strtime\u datetime中
tt,分数,gmtoff\u分数=\u strTime(数据字符串,格式)
文件“C:\Users\336635743\AppData\Local\Programs\Python\Python37-32\lib\\u strtime.py”,第359行,在\u strtime中
(数据字符串,格式))
ValueError:时间数据“”与格式“%Y-%m-%d”不匹配
更改此行

if (startdate and enddate) == "":

另一种方式:

if not startdate and not enddate: # PEP 8 recommended
try:
    startdate = datetime.datetime.strptime(event["start_date"], dateformat)
    enddate = datetime.datetime.strptime(event["end_Date"], dateformat)
except:
    startdate = datetime.date.today()
    enddate = startdate - datetime.timedelta(days = 1)

这可能不是您想要的:

 if (startdate and enddate) == "":
那么:

if startdate == '':
    startdate = datetime.date.today()
if enddate == '':
    enddate = startdate - datetime.timedelta(days = 1)

使用
试除

Ex:

if not startdate and not enddate: # PEP 8 recommended
try:
    startdate = datetime.datetime.strptime(event["start_date"], dateformat)
    enddate = datetime.datetime.strptime(event["end_Date"], dateformat)
except:
    startdate = datetime.date.today()
    enddate = startdate - datetime.timedelta(days = 1)

当我在python AWS lambda上工作时,我尝试了另一种方法,它很有效

  if "start_date" in event:
        startdate = datetime.datetime.strptime(event["start_date"], dateformat) 
        enddate = datetime.datetime.strptime(event["end_date"], dateformat)