话说,Python 这种胶水语言,粘性最大的地方就在于它能轻松调用各种 API。你想想,不用自己吭哧吭哧造轮子,直接就能用别人现成的服务,这感觉,简直爽爆了!
那 Python 怎么调用 API 呢?其实方法不少,但最常用的,也最容易上手的,就是用 requests
库。这玩意儿简直是为 API 调用而生的,简单好用,谁用谁知道。
先装个 requests
库,这步必须有:
python
pip install requests
装好之后,就可以开始嗨皮了。
最简单的 API 调用,就是 GET
请求。比如,你想获取某个网站上的数据,就可以这么写:
“`python
import requests
url = “https://api.github.com/users/octocat” # 换成你想调用的API地址
try:
response = requests.get(url)
response.raise_for_status() # 检查请求是否成功,不成功就抛异常
data = response.json() # 将返回的JSON数据转换为Python字典
print(data['login']) # 输出用户的登录名,这里是 Octocat
print(data['name']) # 输出用户的名字,这里是 The Octocat
except requests.exceptions.RequestException as e:
print(f”请求出错啦:{e}”)
“`
这段代码,我跟你说,简直不要太直白。先 import requests
,然后定义一个 url
,就是你要调用的 API 地址。接着,用 requests.get(url)
发起 GET
请求。注意,为了避免出现网络问题或者服务器错误,最好用 try...except
包裹起来。response.raise_for_status()
这句很重要,它会检查 HTTP 状态码,如果不是 200,就会抛出一个异常,让你知道请求出错了。最后,用 response.json()
把返回的 JSON 数据转换成 Python 字典,就可以方便地访问里面的数据了。
GET
请求通常用于获取数据,但有时候,你还需要提交数据给 API,这时候就要用到 POST
请求了。比如,你想注册一个账号,或者发送一条消息,就可以用 POST
请求。
“`python
import requests
import json # 要发送JSON数据,需要导入 json 模块
url = “https://httpbin.org/post” # 一个专门用来测试POST请求的API
data = {
“name”: “张三”,
“age”: 30,
“city”: “北京”
}
headers = {‘Content-Type’: ‘application/json’} # 告诉服务器我们发送的是JSON数据
try:
response = requests.post(url, data=json.dumps(data), headers=headers) # 将 Python 字典转换为 JSON 字符串
response.raise_for_status()
result = response.json() # 获取返回的 JSON 数据
print(result['json']) # 打印我们发送的数据,服务器会原样返回
except requests.exceptions.RequestException as e:
print(f”请求出错啦:{e}”)
“`
这段代码,稍微复杂一点点,但也很好理解。首先,定义一个 data
字典,里面包含了你要提交的数据。然后,设置 headers
,告诉服务器你发送的是 JSON 数据。接着,用 requests.post(url, data=json.dumps(data), headers=headers)
发起 POST
请求。注意,data
参数需要把 Python 字典转换成 JSON 字符串,可以用 json.dumps()
函数来实现。
除了 GET
和 POST
请求,还有 PUT
和 DELETE
请求,分别用于更新和删除数据。用法和 POST
类似,只是把 requests.post()
换成 requests.put()
或 requests.delete()
就行了。
当然,有些 API 可能需要你提供 API 密钥(API Key)才能访问。这时候,你可以把 API Key 放在请求头里,或者作为参数放在 url
里。
“`python
import requests
url = “https://api.example.com/data?api_key=YOUR_API_KEY” # 直接把 API Key 放在 url 里
headers = {“X-API-Key”: “YOUR_API_KEY”} # 或者放在请求头里
try:
response = requests.get(url, headers=headers)
response.raise_for_status()
data = response.json()
print(data)
except requests.exceptions.RequestException as e:
print(f”请求出错啦:{e}”)
“`
上面的例子展示了两种常见的 API Key 传递方式。 YOUR_API_KEY
记得替换成你真正的 API Key。
还有,有些 API 可能需要你进行身份验证,比如用 OAuth。 这就稍微复杂一点,需要用到专门的 OAuth 库,比如 requests-oauthlib
。
“`python
from requests_oauthlib import OAuth1
OAuth 认证信息,需要向 API 提供商申请
consumer_key = ‘YOUR_CONSUMER_KEY’
consumer_secret = ‘YOUR_CONSUMER_SECRET’
resource_owner_key = ‘YOUR_RESOURCE_OWNER_KEY’
resource_owner_secret = ‘YOUR_RESOURCE_OWNER_SECRET’
url = ‘https://api.example.com/protected_resource’
oauth = OAuth1(consumer_key,
client_secret=consumer_secret,
resource_owner_key=resource_owner_key,
resource_owner_secret=resource_owner_secret)
try:
response = requests.get(url, auth=oauth)
response.raise_for_status()
print(response.content)
except requests.exceptions.RequestException as e:
print(f”请求出错啦:{e}”)
“`
上面只是一个 OAuth1 认证的简单示例。 具体怎么用,还得看 API 提供商的文档。
总之,Python 调用 API 并不难,只要掌握了 requests
库,基本上就能搞定大部分的 API 了。 关键是要多看文档,多实践,遇到问题多 Google,很快你就能成为 API 调用的大神!记住,玩 API,就是要大胆尝试,不怕出错! 这才是编程的乐趣所在,不是吗?
评论(0)