Giới thiệu về API

Nạp dữ liệu gọn nhẹ với pandas

Amany Mahfouz

Instructor

Giao diện lập trình ứng dụng (API)

  • Xác định cách một ứng dụng giao tiếp với chương trình khác
  • Cách lấy dữ liệu từ ứng dụng mà không cần biết chi tiết CSDL

Một biểu mẫu có vài ô được chọn và vài ô để trống

Nạp dữ liệu gọn nhẹ với pandas

Giao diện lập trình ứng dụng (API)

  • Xác định cách một ứng dụng giao tiếp với chương trình khác
  • Cách lấy dữ liệu từ ứng dụng mà không cần biết chi tiết CSDL

Một biểu mẫu và một cửa hàng. Mũi tên cho thấy biểu mẫu được gửi đến cửa hàng.

Nạp dữ liệu gọn nhẹ với pandas

Giao diện lập trình ứng dụng (API)

  • Xác định cách một ứng dụng giao tiếp với chương trình khác
  • Cách lấy dữ liệu từ ứng dụng mà không cần biết chi tiết CSDL

Một gói hàng mở và một cửa hàng. Gói hàng ở vị trí biểu mẫu đặt hàng trước đó. Mũi tên cho thấy cửa hàng đã gửi gói.

Nạp dữ liệu gọn nhẹ với pandas

Requests

  • Gửi và nhận dữ liệu từ website
  • Không gắn với API cụ thể
  • requests.get() để lấy dữ liệu từ URL

logo requests

Nạp dữ liệu gọn nhẹ với pandas

requests.get()

  • requests.get(url_string) để lấy dữ liệu từ URL
  • Đối số keyword
    • Từ khóa params: nhận dict tham số và giá trị để tùy chỉnh yêu cầu API
    • Từ khóa headers: nhận dict, dùng để cung cấp xác thực người dùng cho API
  • Kết quả: một đối tượng response, chứa dữ liệu và siêu dữ liệu
    • response.json() chỉ trả về dữ liệu JSON
Nạp dữ liệu gọn nhẹ với pandas

response.json() và pandas

  • response.json() trả về một dict
  • read_json() mong đợi chuỗi, không phải dict
  • Nạp JSON phản hồi vào dataframe bằng pd.DataFrame()
    • Dùng read_json() sẽ lỗi!
Nạp dữ liệu gọn nhẹ với pandas

Yelp Business Search API

Logo Yelp

Nạp dữ liệu gọn nhẹ với pandas

Yelp Business Search API

Tài liệu Yelp Business Search API. Hiển thị endpoint yêu cầu và một số tham số.

Nạp dữ liệu gọn nhẹ với pandas

Yelp Business Search API

Tài liệu Yelp Business Search API. URL endpoint API được đánh dấu.

Nạp dữ liệu gọn nhẹ với pandas

Yelp Business Search API

Tài liệu Yelp Business Search API. Tham số tùy chọn term được đánh dấu.

Nạp dữ liệu gọn nhẹ với pandas

Yelp Business Search API

Tài liệu Yelp Business Search API. Các tham số vị trí bắt buộc được đánh dấu.

Nạp dữ liệu gọn nhẹ với pandas

Yelp Business Search API

Tài liệu Yelp Business Search API, hiển thị ví dụ phản hồi JSON

Nạp dữ liệu gọn nhẹ với pandas

Gửi yêu cầu

import requests
import pandas as pd

api_url = "https://api.yelp.com/v3/businesses/search"
# Thiết lập dict tham số theo tài liệu params = {"term": "bookstore", "location": "San Francisco"}
# Thiết lập dict header kèm khóa API theo tài liệu headers = {"Authorization": "Bearer {}".format(api_key)}
# Gọi API response = requests.get(api_url, params=params, headers=headers)
Nạp dữ liệu gọn nhẹ với pandas

Phân tích phản hồi

# Tách dữ liệu JSON từ đối tượng response
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,
# Nạp dữ liệu businesses vào dataframe
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]
Nạp dữ liệu gọn nhẹ với pandas

Ayo berlatih!

Nạp dữ liệu gọn nhẹ với pandas

Preparing Video For Download...