【问题标题】:100 result limit from Splunk API callSplunk API 调用的 100 个结果限制
【发布时间】:2020-08-06 21:41:54
【问题描述】:

我应该得到大约 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)

【问题讨论】:

    标签: python api rest python-requests splunk


    【解决方案1】:

    在 HTTP 规范中,GET 请求不包含请求正文 (relevant Stack Overflow thread),这是您使用 requests.get() 方法的 data 参数定义的内容 (relevant Real Python blog post 对此进行了解释)。 Splunk 的 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,尤其是Passing Parameters in URLs 部分很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      相关资源
      最近更新 更多