话说,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() 函数来实现。

除了 GETPOST 请求,还有 PUTDELETE 请求,分别用于更新和删除数据。用法和 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,就是要大胆尝试,不怕出错! 这才是编程的乐趣所在,不是吗?

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。