用Python将票据视图导出到CSV文件

本教程向您展示如何编写Python脚本以在票务视图中获取票务数据,然后将数据导出并格式化为CSV文件。有关视图的详细信息,请参见创建视图来管理票据工作流

您不必使用API将票证视图导出到CSV文件。您可以在Zendesk管理界面中使用导出视图功能。亚博看到将视图导出到CSV文件.每个选择都有其优点和缺点。例如,Zendesk中的导出数据特性只包含CSV中有限的一组列:票据ID、状态、亚博主题、请求者、请求日期、类型和优先级。API导出所有票证数据,包括对话。不幸的是,数据不是一个整洁的二维结构,不容易写入CSV。你需要munge使数据适合CSV表的简单列和行。绿豆是将数据从一种格式转换或映射到另一种格式的过程。

在开始之前,您需要进行安装Python 3请求库,它简化了在Python中进行HTTP请求。

相关信息:

关于代码示例的说明:由于文章的页面宽度,示例中的某些代码行可能会换行到下一行。复制本教程中的示例时,请忽略换行。在Python中换行很重要。

获取视图ID

在本例中,您希望检索列表下列出的票据数据票的观点命名为“功能请求”。

对象的API请求,从而找到票据视图的视图id列表视图端点。您可以使用API测试工具,如curl或邮递员提出请求。

示例curl请求:

             
旋度https//子域名亚博com/api/v2/的观点json \-v-u电子邮件密码

在响应中,视图对象数组包含标题命名为“功能请求”和视图id.例子:

             
“数”2“next_page”“previous_page”“视图”“活跃”真正的“条件”“描述”“近期门票查看”“执行”“id”25“位置”3.“限制”“标题”“机票更新时间少于12小时”“活跃”“条件”“描述”“查看有关功能请求的门票”“执行”“id”23“位置”7“限制”“标题”“特性请求”

从API获取票据数据

方法获取了视图ID之后,可以检索门票列表从视图中列出门票端点。

在您最喜欢的文本编辑器中,创建一个名为export_tickets.py并粘贴以下代码:

             
进口请求身份验证“your_email”“your_password”view_ticketsview_idyour_view_id打印f'从视图ID {view_id}获取门票'urlf“https://your_subdomain.亚博zendesk.com/api/v2/views/ {view_id} / tickets.json”url响应请求得到url身份验证身份验证page_data响应jsonpage_data“门票”view_tickets扩展urlpage_data“next_page”

将脚本中以下占位符替换为您的信息:your_subdomainyour_email_addressyour_password,your_view_id

脚本中:

  • 您导入Requests模块来进行API调用
  • print ()函数在执行脚本时,将消息打印到屏幕上,表明它正在从视图中检索票据
  • 从视图中列出门票指定端点URL
  • 要对所有结果进行分页,使用while循环发出API请求,并将页面数据增量存储在tickets变量中,然后获取'next_page' url。你可以在使用Zendesk API和Python获取大型数据集亚博

选择并格式化数据

数据包括许多您不需要的信息,例如自定义字段。对于每个记录,您只需要为每个票据包含以下属性:id主题requester_idassignee_idcreated_at,状态

您可以使用CSV库来选择您想要包含在CSV文件中的票据属性并格式化它。

  1. export_tickets.py,将以下代码粘贴到文件末尾:

                   
    “票ID”“主题”“请求者ID”“受让人ID”“创建”“状态”“URL”view_tickets“id”“主题”“requester_id”“assignee_id”“created_at”“状态”f“https://support.亚博zendesk.com/agent/tickets/{票(" id ")}’附加开放“tickets.csv”模式' w '换行符作为csv_filereport_writercsv作家csv_file方言“超越”report_writerwriterow
  2. 保存文件并运行脚本。

第一行代码为您想要包含的票据属性创建标题行。接下来,一个loop用于遍历每个ticket的ticket属性,以及创建一个ticket URL。

with语句打开tickets.csvcsv.writer ()函数用于创建report_writer对象。的循环使用report_writer.writerow ()函数将每张门票的门票属性编写为tickets.csv文件。

代码完成

你的脚本应该是这样的:

             
进口请求进口csv设置身份验证“your_email”“your_password”view_ticketsview_idyour_view_id列表一个视图打印f'从视图ID {view_id}获取门票'urlf“https://your_domain.亚博zendesk.com/api/v2/views/ {view_id} / tickets.json”url响应请求得到url身份验证身份验证page_data响应jsonpage_data“门票”#提取“门票”列表页面view_tickets扩展urlpage_data“next_page”初始化初始标题行“票ID”“主题”“请求者ID”“受让人ID”“创建”“状态”“URL”定义每一张票一行,并附加view_tickets“id”“主题”“requester_id”“assignee_id”“created_at”“状态”f“https://support.亚博zendesk.com/agent/tickets/{票(" id ")}’附加开放“tickets.csv”模式' w '换行符作为csv_filereport_writercsv作家csv_file方言“超越”report_writerwriterow