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

Python使用multipart/form-data提交数组报错,求解决方案

解决方案

问题出在你传递的data字段内容不是标准的JSON数组格式,后端无法识别。以下是修正后的代码:

import requests
import json

post_url = "你的目标URL"
# 构造符合要求的数组结构
post_data = [{"x": 0, "y": 0, "value": "x y orange"}]
# 将数组序列化为标准JSON字符串,作为multipart字段传递
file_data = {"data": (None, json.dumps(post_data), "application/json")}
# 无需手动设置Content-Type,requests会自动生成multipart/form-data头
response = requests.post(post_url, files=file_data)
print(response.text)

错误原因说明

  1. 你之前的post_data是元组列表,转成字符串后是类似"[('x', ('data', 0)), ...]"的非JSON格式内容,后端解析时无法识别为数组,因此报错"The data field must be an array"。
  2. 使用data或json参数时,requests会自动设置Content-Type为application/x-www-form-urlencoded或application/json,不符合后端要求的multipart/form-data,因此触发对应错误。

关键要点

  • 必须传递标准JSON格式的数组字符串给data字段,使用json.dumps()序列化数组是正确方式。
  • 通过files参数传递数据时,requests会自动生成符合要求的multipart/form-data请求头,无需手动设置。
  • files中data字段的格式为(文件名, 内容, MIME类型),这里文件名设为None即可,因为我们不是上传实际文件,只是传递JSON数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:22:55