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

求助:将可用的微信素材上传curl命令改为正确的Python requests代码

解决微信公众平台图片素材上传的requests代码问题

我来帮你搞定这个问题~你的核心问题是requests.post方法的参数使用错误:你原本的curl命令里-F是用来发送multipart/form-data格式的文件上传请求,而你用了data参数来传递文件,这完全不符合接口的请求格式要求,应该改用files参数来处理文件上传。

修改后的正确代码

import requests

with open('z.jpg', 'rb') as f:
    # 用files参数传递上传的媒体文件,匹配微信接口的要求
    r = requests.post(
        'https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=6Y_KkbNIaazLnWDG3g3QJVKCMJcACARBY&type=image',
        files={'media': ('z.jpg', f, 'image/jpeg')}
    )

# 可以打印响应结果排查问题
print(r.json())

关键细节说明

  • files参数接收字典,键名media必须和微信接口要求的参数名完全一致
  • 字典的值是一个三元组:(文件名, 文件对象, MIME类型),这里图片的MIME类型用image/jpeg(如果是PNG格式就换成image/png)
  • 不需要手动设置Content-Type请求头,requests会自动处理multipart/form-data格式的请求头

这样修改后,代码的行为就和你原来的curl命令完全一致了,应该能正常完成图片素材的上传。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:45:16