来自 Splunk API 调用的 100 个结果限制

100 result limit from Splunk API call

我应该得到大约 1000 个结果,但这只是将其中的 100 个返回到输出文件中。

g = requests.get(base_url + '/services/search/jobs/' + sid + '/results/',

headers = {'Authorization':('Splunk %s' %session_key)},data={'output_mode': 'json', 'count':'0'},  verify = False)

data = g.json()

names = [item['name'] for item in data['results']]

with open ('sOutput.csv', mode='w') as csv_file:
        csv_writer = csv.writer(csv_file,  delimiter='\n', quotechar='"', quoting=csv.QUOTE_MINIMAL)
        csv_writer.writerow(names)

在 HTTP 规范中,GET 请求不包含请求主体(relevant Stack Overflow thread), which is what you're define with the data parameter of the requests.get() method (relevant Real Python blog post explaining this). Splunk's API documentation 还特别将这些选项称为“[...] GET 方法的参数".

使用 request.get()params 参数来正确地将这些选项传递给服务器:

g = requests.get(base_url + '/services/search/jobs/' + sid + '/results/',

headers = {'Authorization':('Splunk %s' %session_key)},params={'output_mode': 'json', 'count':'0'},  verify = False)

data = g.json()

names = [item['name'] for item in data['results']]

with open ('sOutput.csv', mode='w') as csv_file:
        csv_writer = csv.writer(csv_file,  delimiter='\n', quotechar='"', quoting=csv.QUOTE_MINIMAL)
        csv_writer.writerow(names)

顺便说一句,您可能会发现熟悉 Requests documentation, more specifically with the Passing Parameters in URLs 部分很有用。