1

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

我正在使用 Servicenow API 来获取创建票证的日期,并以以下格式返回:

2019-06-06 13:11:39

我正在努力使用 datetime、date、strftime、strptime 等将上面的输出格式化为我可以做数学运算的东西。基本上我需要关闭任何超过 90 天的票,因此可以丢弃上面输出中的时间。我需要:

  1. 根据当前日期从上面的输出中获取以天为单位的数字年龄。
  2. 如果该值大于 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)

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

谢谢。

4

1 回答 1

0
from datetime import datetime

created = datetime.strptime(item["sys_created_on"].split(' ')[0], '%Y-%m-%d')
delta = datetime.now() - created
print(delta.days)
于 2019-11-10T17:12:17.950 回答