在 Python 的requests
库中,post
请求可以通过data
和json
两种方式来传递参数。
数据类型及格式
- data
- 数据类型:可传递多种数据类型,如字典类型、字符串、字节等
- Content - Type:
application/x - www - form - urlencoded,
表单格式键值对形式,如key1=value1&key2=value2;或multipart/form - data
(用于文件上传等)。如果需要其他类型,可能需要手动在header
中指定。
- json
- 数据类型:本质是符合特定语法规则的字符串,一般只能传dict格式,然后将其序列化为 JSON 格式字符串。
- Content - Type:
application/json,
数据结构如{"key1": "value1", "key2": "value2"},在使用requests
库的json
参数发送时,无需手动在header
中指定该类型。
数据处理方式
- data:当传递字典时,会将字典转换为表单编码格式。例如,使用
requests
库发送请求时:import requests data_dict = {'name': 'Alice', 'age': 25} response = requests.post('http://example.com', data=data_dict) # requests会将字典转换为类似'name=Alice&age=25'的格式发送
- json:将字典自动序列化为 JSON 格式。例如:
import requests json_dict = {'city': 'New York', 'population': 8000000} response = requests.post('http://example.com', json=json_dict) # 会将字典转换为'{"city": "New York", "population": 8000000}'格式发送