Zenpy 增量导出在 start_date 之前给出票证
Zenpy incremental export gives tickets before start_date
我正在尝试使用 zenpy 获取有关上周创建或修改的工单的信息。这是我使用的代码:
stream_status = False #Exit condition
while(stream_status==False):
print(start_date)
all_tickets = zendesk.tickets.incremental(start_time=start_date, include=['users','organizations'])
print(len(all_tickets))
print(all_tickets.end_time)
for ticket in all_tickets:
#grab ticket fields and store them in a Dataframe
df.loc[len(df)] = [ticket_id,created_at,requester,organization,product,subject,assignee,status,priority,opened_at,opened_by,solved_at,solved_by,closed_at,closed_by]
count +=1
print(count,ticket_id)
start_date = all_tickets.end_time
stream_status = all_tickets.end_of_stream
print(start_date,stream_status)
today = datetime.now().strftime("%Y%m%d%H%M")
df.to_excel('Ticket_report{0}.xlsx'.format(today))
现在这里有几个问题。日期计算正确,确实是 7 天前。但是我得到的门票至少可以追溯到四月份,而且从那以后肯定没有被修改过。我此时停止了它,因为我们有数千张票。
此外,增量方法 returns 最多 1000 个票证对象,但即使在 1000 个之后,循环似乎也不会重新启动(末尾的打印语句不会触发)。我不确定我是否正确使用了 stream_status 标志。任何建议都非常受欢迎。谢谢!
有关增量的 Zenpy 文档可在此处找到:http://docs.facetoe.com.au/zenpy.html#incremental-exports
毕竟这是一个 API 问题。
对于遇到类似问题的任何人,结果是将开始日期与 generated_timestamp 而不是 updated_at 或 created_at 字段进行比较。 Updated_at 保留生成工单事件(例如更改)的最后一个操作,但每次工单受到影响时 generated_timestamp 都会更新,甚至来自系统。这导致获取在输入日期之前更新或创建的票证。一个解决方案是在调用后过滤掉结果:
all_tickets = zendesk_client.incremental(start_time=start_date)
accurate_tickets = [ticket for ticket in all tickets if parser.parse(ticket.updated_at) > start_date]
不太清楚他们为什么要这样设计 API,似乎有点不对,但不幸的是它就是这样工作的。
我正在尝试使用 zenpy 获取有关上周创建或修改的工单的信息。这是我使用的代码:
stream_status = False #Exit condition
while(stream_status==False):
print(start_date)
all_tickets = zendesk.tickets.incremental(start_time=start_date, include=['users','organizations'])
print(len(all_tickets))
print(all_tickets.end_time)
for ticket in all_tickets:
#grab ticket fields and store them in a Dataframe
df.loc[len(df)] = [ticket_id,created_at,requester,organization,product,subject,assignee,status,priority,opened_at,opened_by,solved_at,solved_by,closed_at,closed_by]
count +=1
print(count,ticket_id)
start_date = all_tickets.end_time
stream_status = all_tickets.end_of_stream
print(start_date,stream_status)
today = datetime.now().strftime("%Y%m%d%H%M")
df.to_excel('Ticket_report{0}.xlsx'.format(today))
现在这里有几个问题。日期计算正确,确实是 7 天前。但是我得到的门票至少可以追溯到四月份,而且从那以后肯定没有被修改过。我此时停止了它,因为我们有数千张票。 此外,增量方法 returns 最多 1000 个票证对象,但即使在 1000 个之后,循环似乎也不会重新启动(末尾的打印语句不会触发)。我不确定我是否正确使用了 stream_status 标志。任何建议都非常受欢迎。谢谢!
有关增量的 Zenpy 文档可在此处找到:http://docs.facetoe.com.au/zenpy.html#incremental-exports
毕竟这是一个 API 问题。
对于遇到类似问题的任何人,结果是将开始日期与 generated_timestamp 而不是 updated_at 或 created_at 字段进行比较。 Updated_at 保留生成工单事件(例如更改)的最后一个操作,但每次工单受到影响时 generated_timestamp 都会更新,甚至来自系统。这导致获取在输入日期之前更新或创建的票证。一个解决方案是在调用后过滤掉结果:
all_tickets = zendesk_client.incremental(start_time=start_date)
accurate_tickets = [ticket for ticket in all tickets if parser.parse(ticket.updated_at) > start_date]
不太清楚他们为什么要这样设计 API,似乎有点不对,但不幸的是它就是这样工作的。