модуль datetime игнорируется в скрипте Zendesk python script

В моем коде я пытаюсь запросить данные билета из zendesk через zenpy wrapper. У меня есть сценарий, который извлекает все данные, которые я хочу, но по какой-то причине он игнорирует часть, касающуюся даты. Есть идеи, что я делаю неправильно?

from datetime import datetime, timedelta



creds = {
    'email' : 'login',
    'password' : 'info',
    'subdomain': 'domain'
}

yesterday = datetime.now() - timedelta(hours=1)
today = datetime.now()


from zenpy import Zenpy
zenpy = Zenpy(**creds)


for ticket in zenpy.search("test", type="ticket", created_greater_than=(yesterday)):
    print(ticket.id)
    id = ticket.id
    subj = ticket.subject
    created = ticket.created_at
    for comment in zenpy.tickets.comments(ticket.id):
        body = comment.body

2 ответа

  1. Хотя это не может исправить вашу проблему, использование переменных имен вчера и сегодня, когда ваш timedelta составляет 1 час, чрезвычайно вводит в заблуждение. Вы вероятно хотите

    yesterday = datetime.now() - timedelta(days=1)
    today = datetime.now()
    

    вместо

    yesterday = datetime.now() - timedelta(hours=1)
    today = datetime.now()
    

    Это также имеет тонкий сбой запуска, если запустить в точный момент часы переворачивается на новый день, которого можно избежать, установив сегодня первый

    today = datetime.now()
    yesterday = today - timedelta(days=1)
    
  2. today = datetime.now()
    yesterday = today - timedelta(days=1)
    
    for ticket in Z.search(type='ticket', created_between=[yesterday, today]):
         ...
    

    Это сработало для меня в прошлый раз, когда я использовал zenpy.

    Убедитесь, что zenpy обновлен, так как zendesk, как известно, добавляет/изменяет конечные точки. Таким образом, если created_greater_thanэто принятый аргумент в Zendesk api, чем это возможно, что zenpy не добавил его, или вы не на последней версии.