You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Kibana下载CSV的curl命令转为Python requests并解决400报错

问题解决方法

错误原因

报错核心是Kibana未正确识别请求中的jobParams查询参数,你之前将带参数的完整路径直接写入API_PATH拼接请求时,路径中的特殊字符、转义符未被正确处理,导致参数解析失败。

修正方案

不要将查询参数直接拼接在URL路径中,使用requests原生的params参数传递查询参数,requests会自动处理编码逻辑。

完整修正代码

import requests
from requests.auth import HTTPBasicAuth
import json
import urllib3
# 关闭自签SSL证书告警
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# 基础配置
USER = 'user'
PASSWORD = 'password'
HOST = 'https://elk.cloud.dive.tech'
API_PATH = '/api/reporting/generate/csv_searchsource'
PORT = 5601

# 填写你实际的jobParams原始JSON结构,不需要转义、不需要提前编码
job_params = {
    # 替换为你自己的任务参数,比如搜索条件、时间范围、索引模式等
}

headers = {"kbn-xsrf": "reporting"}

# 第一步:提交导出任务
resp = requests.post(
    url=f"{HOST}:{PORT}{API_PATH}",
    headers=headers,
    # 自动将jobParams转为JSON字符串并作为查询参数传递
    params={"jobParams": json.dumps(job_params)},
    verify=False,
    auth=HTTPBasicAuth(USER, PASSWORD)
)

# 第二步:Kibana导出为异步任务,需要轮询获取结果
if resp.status_code == 200:
    task_info = resp.json()
    download_path = task_info['path']
    # 轮询下载地址,直到任务完成
    while True:
        csv_resp = requests.get(
            url=f"{HOST}:{PORT}{download_path}",
            headers=headers,
            verify=False,
            auth=HTTPBasicAuth(USER, PASSWORD)
        )
        if csv_resp.status_code == 200:
            # 拿到CSV内容,可写入本地文件
            csv_content = csv_resp.content
            with open('export.csv', 'wb') as f:
                f.write(csv_content)
            break

特殊情况处理

如果你已经有curl命令中编码完成的jobParams字符串,不需要做JSON转换,直接传递即可:

# 直接填入curl命令中jobParams=后面的完整值,去掉转义符\
encoded_job_params = "你原来curl里的jobParams完整值"
resp = requests.post(
    url=f"{HOST}:{PORT}{API_PATH}",
    headers=headers,
    params={"jobParams": encoded_job_params},
    verify=False,
    auth=HTTPBasicAuth(USER, PASSWORD)
)

内容的提问来源于stack exchange,提问作者Tlaloc-ES

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:36:03