Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to export instance table data to CSV using REST API

Tanisha Hudson
ServiceNow Employee
ServiceNow Employee

Hello all,

 

I have some data in an instance that I would like to export to a CSV file using Python and the REST API. I wish to use REST, because there are some rows missing when emailed as a .CSV file. The query gives me 12,000 rows, however, the file that is emailed to me only contains 10,001 rows. 

 

Here is the data I wish to export to CSV:

find_real_file.png

I have added a filter, and it is only about 12,000 rows that I wish to export. This is what I am doing in Python:

 

user = 'tanisha.hudson'
pwd = 'password'



#sysparm_query= import_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^nameSTARTSWITHfb^ORname
       # =/dev/mapper/backupvg-backuplv^mount_point!=/backup_rada


# Set the request parameters
url = 'https://capman.service-now.com/nav_to.do?uri=%2Fx_snc_instance_dc_cmdb_ci_file_system_list.do&sysparm_query=import_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^nameSTARTSWITHfb^ORname?CSV'

#url = 'https://capman.service-now.com/ nav_to.do?uri=%2Fx_snc_instance_dc_cmdb_ci_file_system_list.do?CSV'


# Eg. User name="username", Password="password" for this code sample.

requests.get('https://api.github.com/user', auth=('user', 'pwd'))




# Do the HTTP request
response = requests.get(url, auth=(user, pwd))


# Check for HTTP codes other than 200
if response.status_code != 200: 
    print('Status:', response.status_code, 'Headers:', response.headers, 'Error Response:', response.content)
    exit()
    
    
    
# Parse JSON response body 
print(response.content)

 

 

However, the output appears to be html and CSS:

find_real_file.png

 

 

I am still troubleshooting this, and would like to know if my above code is correct, or what needs to be tweaked to have the data exported in a .csv data-frame format and to a csv file. Any suggestions are appreciated. Thank you

7 REPLIES 7

Try below in your python script

url = 'https://capman.service-now.com/nav_to.do?uri=%2Fx_snc_instance_dc_cmdb_ci_file_system_list.do&sysparm_query=import_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^nameSTARTSWITHfb^ORname?CSV&sysparm_orderby=sys_id&sysparm_record_count=10000'

 


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

Tanisha Hudson
ServiceNow Employee
ServiceNow Employee

Ok thank you. This is giving me this output:

Is there a way to have the output in .CSV with a row count of greater than 10,000?

find_real_file.png

sysparm_record_count=10000 increase this value as needed in your script.


Please mark my response as correct and helpful if it helped solved your question.
-Thanks