gpt4 book ai didi

python - 为什么我不能使用 Python 的 `None` 库在 POST 请求中将 `requests` 作为数据发送?

转载 作者:太空狗 更新时间:2023-10-30 02:09:25 24 4
gpt4 key购买 nike

似乎当 data 中的某个键的值为 None 时,该键未包含在请求中。

>>> req = requests.Request('POST', 'http://google.com', data=dict(a=None, b=1))
>>> req.prepare().body
'b=1'

为什么会这样?我期待一个空字符串,或者类似 json.dumps(d) 的内容,其中 None 呈现为 null。我确定有一个很好的理由——只是对它是什么感到好奇。 (我能想到的一件事是,可能只是没有可用于 POST 请求的 nullNone 编码——是这样吗?)

另外好奇 -- 为什么 requests 默默地忽略这些数据而不是抛出错误?

最佳答案

将字典元素设置为 None 是您明确表示不希望将该参数发送到服务器的方式。

我找不到在 requests.Request() 文档中具体提及的内容,但在 Passing Parameters in URLs 中它说:

Note that any dictionary key whose value is None will not be added to the URL's query string.

显然它也对 POST 请求使用一致的逻辑。

如果要发送空字符串,请将字典元素设置为空字符串而不是 None

关于python - 为什么我不能使用 Python 的 `None` 库在 POST 请求中将 `requests` 作为数据发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36271697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com