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

咨询如何将CURL命令转换为Python requests POST请求

把CURL POST请求转换成Python requests代码的解决方案

我来帮你把给定的CURL命令转换成requests库的代码,同时也适配你提到的用URL替代本地图片的临时方案:

1. 对应原CURL的本地图片上传版本

原CURL命令的核心是通过multipart/form-data上传本地图片,同时携带URL查询参数和请求头。用requests实现的代码如下:

import requests

# 基础API地址
url = "https://api/recognize"
# 将URL中的secret_key作为查询参数传递
params = {
    "secret_key": "abc"
}
# 构造文件上传参数,对应CURL里的-F选项
# 格式为:字段名: (文件名, 文件对象, MIME类型)
with open("/path/to/image.jpg", "rb") as img_file:
    files = {
        "image": ("image.jpg", img_file, "image/jpeg")
    }
    # 请求头中的accept可按需添加,Content-Type会由requests自动处理multipart/form-data
    headers = {
        "accept": "application/json"
    }
    # 发送POST请求
    response = requests.post(url, params=params, files=files, headers=headers)

# 解析响应结果(假设接口返回JSON格式)
print(response.json())

小提示:

  • 用with语句打开文件能自动关闭资源,避免文件句柄泄漏;
  • 若省略headers里的Content-Type,requests会在发送files参数时自动生成正确的multipart/form-data头,无需手动指定。

2. 用URL替代本地图片的临时方案

如果API支持直接接收图片URL作为参数(需确认API文档的字段要求,比如是否仍使用image字段),可以改成传递表单数据:

import requests

url = "https://api/recognize"
params = {
    "secret_key": "abc"
}
# 用data传递字符串参数,而非files
data = {
    "image": "https://your-image-host.com/your-target-image.jpg"
}
headers = {
    "accept": "application/json",
    "Content-Type": "application/x-www-form-urlencoded"
}

response = requests.post(url, params=params, data=data, headers=headers)
print(response.json())

注意:

  • 部分API可能要求URL参数使用特定字段名(比如image_url),如果当前代码返回错误,记得核对API文档的参数命名;
  • 若API仍要求用multipart/form-data格式传递URL,也可以把data换成files,但这种场景下用data更高效。

内容的提问来源于stack exchange,提问作者user9578896

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:20:36