目录
对于参数需要使用字典进行携带的接口(适用于请求头中参数较多时)
本文介绍了使用GET的方式调用API的方式,如需要使用POST方式,将代码中的get换为post即可
对于参数可以直接写入链接中的接口(适用于参数较少时)
对于能够直接通过链接访问,不需要在请求头中提供额外参数的API接口能够直接进行调用可以参考如下代码
此处使用木小果API(https://api.muxiaoguo.cn/)提供的API接口进行示范
import requests
# 使用Get的方式调用API接口,并将返回的值保存为response
response = requests.get('https://api.muxiaoguo.cn/api/tianqi?city=南京&type=1')
# 使用request内置的json()函数将数据解析为列表形式
print(response.json()['data']['cityname']) # 根据想要获取的数据,直接使用索引就行输出
print(response.json()['data']['temp'])
print(response.json()['data']['weather'])
print(response.json()['data']['time'])
附:木小果天气查询API地址链接(https://api.muxiaoguo.cn/doc/tianqi.html)
请求参数说明:
| 名称 | 必填 | 类型 | 说明 |
| type | 是 | String | 查询类型(1.当天 2.未来7天 3.未来8-15天) |
| city | 是 | String | 城市名 |
返回示例:
{
"code": "200",
"msg": "success",
"data": {
"cityname": "长沙",
"nameen": "changsha",
"temp": "21",
"WD": "西北风",
"WS": "1级",
"wse": "12km\/h",
"SD": "90%",
"weather": "阴",
"pm25": "59",
"limitnumber": "",
"time": "11:55"
}
}
对于参数需要使用字典进行携带的接口(适用于请求头中参数较多时)
依然适用上文所提到的API接口,上文所提到的API接口在使用params携带参数时,代码如下所示(此种情况虽可以混用,但仍建议使用POST方法,不建议使用GET方法):
import requests
data = {
'city': '南京',
'type': '1'
}
response = requests.get('https://api.muxiaoguo.cn/api/tianqi', params=data)
print(response.json()['data']['cityname'])
print(response.json()['data']['temp'])
print(response.json()['data']['weather'])
print(response.json()['data']['time'])
附:
GET和POST的区别有哪些?
标准答案:
- GET在浏览器回退时是无害的,而POST会再次提交请求。
-
GET产生的URL地址可以被Bookmark,而POST不可以。
-
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
-
GET请求只能进行url编码,而POST支持多种编码方式。
-
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
-
GET请求在URL中传送的参数是有长度限制的,而POST么有。
-
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
-
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
-
GET参数通过URL传递,POST放在Request body中。
(来自w3schools)
补充说明:
- GET产生一个TCP数据包;POST产生两个TCP数据包(火狐都只发一个)。
- 对于本文中的调用API方式,给GET加上request body,给POST带上url参数,在目前的代码中对于大多数网站提供的API接口都是可以正常运行的 。
如有不懂的地方或其他问题,欢迎通过邮箱联系ipanda92@qq.com与我交流,我将会在看到后的第一时间回复;转载请注明出处。
本文详述了如何使用Python的requests库调用API,包括直接在URL中添加参数和通过字典携带参数的方法。示例中展示了查询木小果天气API的GET请求,解释了GET和POST的主要区别,并提供了相关参数说明和返回示例。
2339

被折叠的 条评论
为什么被折叠?



