嘿,我是Python的新手,我正在尝试执行以下操作:

我正在点击Servicenow API以获取创建票证的日期,并且它以以下格式返回:

2019-06-06 13:11:39

我正在努力使用datetime,date,strftime,strptime等将上面的输出格式化为可以进行数学运算的格式。基本上,我需要关闭所有超过90天的票证,因此可以忽略上面输出中的时间。我需要:


根据当前日期从上面的输出中获取以天为单位的数字年龄。
如果该值大于90,请关闭票证。


这是我的一些东西:

from datetime import datetime, date
today = date.today()
print(today)  # Print for debug purposes

#API query omitted.....

getdata = response.json()
for item in getdata["result"]:
    print(item["sys_created_on"])
    createdstr = datetime(item["sys_created_on"])
    created = createdstr.strftime("%Y-%m-%d")
    delta = today - date(created)
    print(delta.days)
    if delta.day > 90:
        #close the ticket


....这是输出:

2019-11-07
2019-06-06 13:11:39
Traceback (most recent call last):
File "./getUnapprovedSIDs.py", line 32, in <module>
createdstr = datetime(item["sys_created_on"])
TypeError: an integer is required (got type str)


我意识到查看我的代码就像盯着太阳一样。任何帮助是极大的赞赏!

谢谢。

最佳答案

from datetime import datetime

created = datetime.strptime(item["sys_created_on"].split(' ')[0], '%Y-%m-%d')
delta = datetime.now() - created
print(delta.days)

关于python - 使用python检查Servicenow票的年龄,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58753854/

10-12 17:23
查看更多