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

Python调用requests发multipart/form请求到OpenProject报TypeError如何解决

错误原因

  • 你代码中metadata字段的赋值使用了大括号{}包裹多个元素,Python会将其解析为集合类型,而requests库的files参数要求每个表单项对应的值为符合格式的元组,这是触发TypeError的直接原因。
  • metadata部分要求传入JSON序列化后的字符串,你没有对字典做序列化处理,即使修正集合的问题也会后续请求报错。
  • 注意不要在请求头中手动设置Content-Type,requests会自动生成带boundary的合法multipart/form-data请求头,手动指定反而会导致请求格式错误。

修正方案

首先导入JSON处理模块:

import json

调整请求构造逻辑如下:

filename = "image{}.png".format(index)
with open(filename, 'rb') as file:
    multipart_form = {
        # metadata部分:无文件名,传入序列化后的JSON字符串,指定Content-Type为application/json
        "metadata": (None, json.dumps({"fileName": filename}), "application/json"),
        # file部分:可填写文件名(OpenProject会忽略该值,以metadata中的fileName为准),传入二进制文件内容,指定MIME类型
        "file": (filename, file.read(), "image/png")
    }
res = requests.post(url=url, files=multipart_form, headers=header)
return res

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:24:03