API 入门

使用 pandas 高效导入数据

Amany Mahfouz

Instructor

应用程序编程接口

  • 定义应用如何与其他程序通信
  • 无需了解数据库细节即可从应用获取数据

一个表单,部分已勾选,部分为空

使用 pandas 高效导入数据

应用程序编程接口

  • 定义应用如何与其他程序通信
  • 无需了解数据库细节即可从应用获取数据

一个表单和一家店面。箭头表示表单被发送到商店。

使用 pandas 高效导入数据

应用程序编程接口

  • 定义应用如何与其他程序通信
  • 无需了解数据库细节即可从应用获取数据

一个打开的包裹和一家店面。包裹出现在原订单表单的位置。箭头表示商店已寄出包裹。

使用 pandas 高效导入数据

Requests

  • 与网站发送/接收数据
  • 不依赖特定 API
  • requests.get() 从 URL 获取数据

requests 标志

使用 pandas 高效导入数据

requests.get()

  • 使用 requests.get(url_string) 从 URL 获取数据
  • 关键字参数
    • params:传入参数字典,自定义 API 请求
    • headers:传入字典,可用于提供 API 用户认证
  • 返回:包含数据与元数据的 response 对象
    • response.json() 仅返回 JSON 数据
使用 pandas 高效导入数据

response.json() 与 pandas

  • response.json() 返回字典
  • read_json() 需要字符串,不是字典
  • pd.DataFrame() 将响应 JSON 载入为数据框
    • read_json() 会报错!
使用 pandas 高效导入数据

Yelp 业务搜索 API

Yelp 标志

使用 pandas 高效导入数据

Yelp 业务搜索 API

Yelp 业务搜索 API 文档。显示了请求端点和部分参数。

使用 pandas 高效导入数据

Yelp 业务搜索 API

Yelp 业务搜索 API 文档。高亮显示 API 端点 URL。

使用 pandas 高效导入数据

Yelp 业务搜索 API

Yelp 业务搜索 API 文档。高亮显示可选的 term 参数。

使用 pandas 高效导入数据

Yelp 业务搜索 API

Yelp 业务搜索 API 文档。高亮显示必填的位置信息参数。

使用 pandas 高效导入数据

Yelp 业务搜索 API

Yelp 业务搜索 API 文档,显示示例响应 JSON

使用 pandas 高效导入数据

发起请求

import requests
import pandas as pd

api_url = "https://api.yelp.com/v3/businesses/search"
# 按文档设置参数字典 params = {"term": "bookstore", "location": "San Francisco"}
# 按文档设置包含 API 密钥的请求头字典 headers = {"Authorization": "Bearer {}".format(api_key)}
# 调用 API response = requests.get(api_url, params=params, headers=headers)
使用 pandas 高效导入数据

解析响应

# 从响应对象中提取 JSON 数据
data = response.json()
print(data)
{'businesses': [{'id': '_rbF2ooLcMRA7Kh8neIr4g', 'alias': 'city-lights-bookstore-san-francisco', 'name': 'City Lights Bookstore', 'image_url': 'https://s3-media1.fl.yelpcdn.com/bphoto/VRydkkpVbA3CeVLBKzs2Vw/o.jpg', 'is_closed': False,
# 将 businesses 数据载入数据框
bookstores = pd.DataFrame(data["businesses"])
print(bookstores.head(2))
                                  alias        ...                                                    url
0   city-lights-bookstore-san-francisco        ...      https://www.yelp.com/biz/city-lights-bookstore...
1  alexander-book-company-san-francisco        ...      https://www.yelp.com/biz/alexander-book-compan...

[2 rows x 16 columns]
使用 pandas 高效导入数据

Vamos praticar!

使用 pandas 高效导入数据

Preparing Video For Download...