在 Python 中,requests
库的 post
方法用于发送 HTTP 请求。它允许我们向服务器发送数据,但是有两个不同的参数可以用来传递这些数据:data
和 json
。
下面是它们之间的区别:
data
参数:
- 如果你需要发送简单的键值对形式的表单数据,使用
data
参数是合适的。 - 这种方式适用于浏览器原生的表单提交,例如使用 HTML 表单的 POST 请求。
- 数据会被编码为
application/x-www-form-urlencoded
格式,类似于浏览器原生的表单提交。 - 示例代码:
import requests
url = 'http://httpbin.org/post'
data = {'a_test': 112233, 'b_test': 223344}
response = requests.post(url=url, data=data)
- 注意:如果同时设置了
data
和json
参数,json
参数的值将会覆盖data
参数的值。
json
参数:
- 如果你需要发送结构化数据,例如 JSON 格式的数据,应该使用
json
参数。 - 这种方式适用于发送复杂的结构化数据,方便各种类型的数据交互。
- 数据会被编码为
application/json
格式。 - 示例代码:
import requests
url = 'http://httpbin.org/post'
json_data = {'test': 'test123', 'test22': [111, 222, 333]}
response = requests.post(url=url, json=json_data)
json
参数可以提交比较复杂的数据,例如嵌套的字典或列表。