Используйте python, чтобы проверить возраст билета Servicenow - PullRequest
1 голос
/ 07 ноября 2019

Привет всем, я новичок в Python, и я пытаюсь сделать следующее:

Я нажимаю API Servicenow, чтобы получить дату, когда был создан билет, и он возвращается в следующем формате:

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)

Я понимаю, что смотреть на мой код - это какглядя на солнце. Любая помощь с благодарностью!

Спасибо.

1 Ответ

0 голосов
/ 10 ноября 2019
from datetime import datetime

created = datetime.strptime(item["sys_created_on"].split(' ')[0], '%Y-%m-%d')
delta = datetime.now() - created
print(delta.days)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...