Pengantar API

Pemasukan Data yang Efisien dengan pandas

Amany Mahfouz

Instructor

Application Programming Interfaces

  • Mendefinisikan bagaimana suatu aplikasi berkomunikasi dengan program lain
  • Cara mengambil data dari aplikasi tanpa mengetahui detail basis data

Sebuah formulir dengan beberapa isian tercentang dan sebagian kosong

Pemasukan Data yang Efisien dengan pandas

Application Programming Interfaces

  • Mendefinisikan bagaimana suatu aplikasi berkomunikasi dengan program lain
  • Cara mengambil data dari aplikasi tanpa mengetahui detail basis data

Sebuah formulir dan etalase toko. Sebuah panah menunjukkan formulir dikirim ke toko.

Pemasukan Data yang Efisien dengan pandas

Application Programming Interfaces

  • Mendefinisikan bagaimana suatu aplikasi berkomunikasi dengan program lain
  • Cara mengambil data dari aplikasi tanpa mengetahui detail basis data

Sebuah paket terbuka dan etalase toko. Paket berada di tempat formulir pesanan sebelumnya. Sebuah panah menunjukkan toko telah mengirim paket.

Pemasukan Data yang Efisien dengan pandas

Requests

  • Kirim dan ambil data dari situs web
  • Tidak terikat pada API tertentu
  • requests.get() untuk mengambil data dari URL

Logo requests

Pemasukan Data yang Efisien dengan pandas

requests.get()

  • requests.get(url_string) untuk mengambil data dari URL
  • Argumen kata kunci
    • Kata kunci params: menerima dictionary parameter dan nilai untuk menyesuaikan permintaan API
    • Kata kunci headers: menerima dictionary, dapat digunakan untuk autentikasi pengguna ke API
  • Hasil: objek response berisi data dan metadata
    • response.json() hanya mengembalikan data JSON
Pemasukan Data yang Efisien dengan pandas

response.json() dan pandas

  • response.json() mengembalikan dictionary
  • read_json() mengharapkan string, bukan dictionary
  • Muat JSON respons ke dataframe dengan pd.DataFrame()
    • read_json() akan error!
Pemasukan Data yang Efisien dengan pandas

Yelp Business Search API

Logo Yelp

Pemasukan Data yang Efisien dengan pandas

Yelp Business Search API

Dokumentasi Yelp Business Search API. Endpoint permintaan dan beberapa parameter ditampilkan.

Pemasukan Data yang Efisien dengan pandas

Yelp Business Search API

Dokumentasi Yelp Business Search API. URL endpoint API disorot.

Pemasukan Data yang Efisien dengan pandas

Yelp Business Search API

Dokumentasi Yelp Business Search API. Parameter opsional term disorot.

Pemasukan Data yang Efisien dengan pandas

Yelp Business Search API

Dokumentasi Yelp Business Search API. Parameter lokasi wajib disorot.

Pemasukan Data yang Efisien dengan pandas

Yelp Business Search API

Dokumentasi Yelp Business Search API, menampilkan contoh respons JSON

Pemasukan Data yang Efisien dengan pandas

Membuat Permintaan

import requests
import pandas as pd

api_url = "https://api.yelp.com/v3/businesses/search"
# Set up parameter dictionary according to documentation params = {"term": "bookstore", "location": "San Francisco"}
# Set up header dictionary w/ API key according to documentation headers = {"Authorization": "Bearer {}".format(api_key)}
# Call the API response = requests.get(api_url, params=params, headers=headers)
Pemasukan Data yang Efisien dengan pandas

Mem-parsing Respons

# Isolate the JSON data from the response object
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,
# Load businesses data to a 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]
Pemasukan Data yang Efisien dengan pandas

Ayo berlatih!

Pemasukan Data yang Efisien dengan pandas

Preparing Video For Download...