首页 > 解决方案 > 表单输入(数组)作为 Python 中的 PUT 请求

问题描述

我正在尝试使用 Python3 复制 PUT 请求。我需要发送的表单数据在 Firefox 中如下所示:

p

在 Chrome 中就像这样:

在此处输入图像描述

我尝试了以下方法:

explanation_data = user_a1.put(
    f"/review/{card_id}/verify", f"answerIds%5B%5D={answer1_id}&answerIds%5B%5D={answer2_id}"
)

explanation_data = user_a1.put(
    f"/review/{card_id}/verify", {
        "answerIds":[answer1_id],
        "answerIds":[answer2_id]
    }
)

explanation_data = user_a1.put(
    f"/review/{card_id}/verify", {
        "answerIds":[answer1_id,answer2_id]
    }
)

explanation_data = user_a1.put(
    f"/review/{card_id}/verify", {
        "answerIds":[answer1_id],
        "answerIds":[answer2_id]
    }
)

和其他排列,无济于事。当问题只有一个答案时(如下所示): 在此处输入图像描述

然后以下代码完美运行:

        explanation_data = user_a1.put(
            f"/review/{card_id}/verify", {
                "answerIds":[answer2_id]
            }
        )

我敢肯定这是非常明显的事情。我哪里错了?

标签: pythonarraysput

解决方案


使用requests==2.6.2,下面是使用您想要的 URL 发出 PUT 请求的示例 python 代码。

import requests

headers = {'Content-Type': 'application/json'}
url = "http://localhost:5000"
params = (
    ('answerIds', ['1234', '5678']),
)

req = requests.put(url, params=params, headers=headers)
print req.status

当我为上述请求服务器端打印 URL 时。下面是输出。

http://localhost:5000/?answerIds=1234&answerIds=5678

希望这可以帮助。


推荐阅读