Python Requests包中的data
参数和json
参数有什么区别?
从文档中不清楚。
这段代码是这样的吗:
import requests
import json
d = {'a': 1}
response = requests.post(url, data=json.dumps(d))
(请注意,我们在这里将
dict
转换为JSON!)...与以往没有任何不同。
import requests
import json
d = {'a': 1}
response = requests.post(url, json=d)
如果是这样,那么呢?
后者会自动将
Content-Type
HTTP头设置为application/json
吗?
json=data
转换成 JSON 格式可能不太明显。我的第一反应是使用json=json.dumps(data)
,因为这样更准确。然后我在远程 API 的端点上得到了不相关的错误,因为它接收到的是一个进一步编码为 JSON 的 JSON 字符串的结果(即双重转储)。由于这是一个简单的字符串,难以检测,因此仍然是有效的 JSON。使问题更加混乱的是,在记录接收端获得的内容时,无论以字符串形式还是字典形式呈现输出都是无法区分的。 - Michael Ekoka