Skip to content

Instantly share code, notes, and snippets.

@munhitsu
Created January 24, 2018 12:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save munhitsu/6c0baa4ceac642092e7f8f2576ed10e8 to your computer and use it in GitHub Desktop.
Save munhitsu/6c0baa4ceac642092e7f8f2576ed10e8 to your computer and use it in GitHub Desktop.
Zendesk tickets.xml to csv (opinionated)
import csv
import xml.etree.ElementTree as ET
# was: for $x in ./tickets/ticket return string-join((data($x/created-at), data($x/current-tags), data($x/subject), data($x/description), data($x/status-id)),", ")
SERVICE_ID = '31281329'
tree = ET.parse('tickets.xml')
root = tree.getroot()
with open('tickets.csv', 'w', newline='') as csvfile:
csvwriter = csv.writer(csvfile, dialect='excel')
csvwriter.writerow(["nice-id", "created-at", "service", "current-tags", "subject", "status-id", "description", ])
for ticket in root:
assert ticket.tag == 'ticket'
nice_id = list(ticket.iter('nice-id'))[0].text
created_at = list(ticket.iter('created-at'))[0].text
current_tags = list(ticket.iter('current-tags'))[0].text
subject = list(ticket.iter('subject'))[0].text
status_id = list(ticket.iter('status-id'))[0].text
description = list(ticket.iter('description'))[0].text
service = None
for ticket_field_entry in ticket.iter('ticket-field-entry'):
if list(ticket_field_entry.iter('ticket-field-id'))[0].text == SERVICE_ID:
service = list(ticket_field_entry.iter('value'))[0].text
csvwriter.writerow([nice_id, created_at, service, current_tags, subject, status_id, description, ])
print("Check tickets.csv for output")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment