嘿,我是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/