Splunk Search

Splunk Search results as CSV- python

poorni_p
Explorer

I am trying to get the results as CSV file with the help of this page https://www.splunk.com/blog/2011/08/02/splunk-rest-api-is-easy-to-use.html. i modified few things and successfully getting session id and SID, but getting the below error for the "Get the search status" query.

code:

    servicesSearchStatusSTR='/services/search/jobs/%s/' %sid
    isNotDone = True
    myhttp.add_credentials('username','pwd')
    while isNotDone:
        searchStatus = httplib2.Http(disable_ssl_certificate_validation=True).request(baseurl + servicesSearchStatusSTR,'GET', headers={'Authorization':'Splunk %s' % sessionkey},  body=urllib.parse.urlencode({'search':searchQuery}))[1]                                                                   
        isDoneStatus = re.compile('isDone">(0|1)')
        print(isDoneStatus)
        isDoneStatus =isDoneStatus.search(searchStatus).groups()[0]\
        if(isDoneStatus == '1'):
                     isNotDone = False

print("%s", isDoneStatus)

Error:
Traceback (most recent call last):
File "sample.py", line 46, in
isDoneStatus =isDoneStatus.search(searchStatus).groups()[0]\
TypeError: cannot use a string pattern on a bytes-like object

Please help me to resolve this error.

0 Karma
1 Solution

renjith_nair
Legend

@poorni_p,

searchStatus is an html response (a byte like object) and you need to convert that to string before doing a regex search.

Try adding this to your code just below the searchStatus(line 5 in your code snippet)

    searchStatus = searchStatus.decode('utf-8')
---
What goes around comes around. If it helps, hit it with Karma 🙂

View solution in original post

0 Karma

eavent_splunk
Splunk Employee
Splunk Employee

I'm not a Python expert, but from my testing on Python 2.7 I think you might just have to remove the backslash at the end of this line:

 isDoneStatus =isDoneStatus.search(searchStatus).groups()[0]\
0 Karma

renjith_nair
Legend

@poorni_p,

searchStatus is an html response (a byte like object) and you need to convert that to string before doing a regex search.

Try adding this to your code just below the searchStatus(line 5 in your code snippet)

    searchStatus = searchStatus.decode('utf-8')
---
What goes around comes around. If it helps, hit it with Karma 🙂
0 Karma
Get Updates on the Splunk Community!

Data Management Digest – December 2025

Welcome to the December edition of Data Management Digest! As we continue our journey of data innovation, the ...

Index This | What is broken 80% of the time by February?

December 2025 Edition   Hayyy Splunk Education Enthusiasts and the Eternally Curious!    We’re back with this ...

Unlock Faster Time-to-Value on Edge and Ingest Processor with New SPL2 Pipeline ...

Hello Splunk Community,   We're thrilled to share an exciting update that will help you manage your data more ...