Úvod do API

Streamlined Data Ingestion with pandas

Amany Mahfouz

Instructor

Rozhraní pro programování aplikací

  • Definuje, jak aplikace komunikuje s jinými programy
  • Způsob, jak získat data z aplikace bez znalosti databáze

Formulář s některými vyplněnými a některými prázdnými položkami

Streamlined Data Ingestion with pandas

Rozhraní pro programování aplikací

  • Definuje, jak aplikace komunikuje s jinými programy
  • Způsob, jak získat data z aplikace bez znalosti databáze

Formulář a prodejna. Šipka znázorňuje odeslání formuláře do prodejny.

Streamlined Data Ingestion with pandas

Rozhraní pro programování aplikací

  • Definuje, jak aplikace komunikuje s jinými programy
  • Způsob, jak získat data z aplikace bez znalosti databáze

Otevřený balíček a prodejna. Balíček je na místě objednávkového formuláře. Šipka znázorňuje, že prodejna balíček odeslala.

Streamlined Data Ingestion with pandas

Requests

  • Odesílání a přijímání dat z webů
  • Není vázáno na konkrétní API
  • requests.get() pro získání dat z URL

Logo requests

Streamlined Data Ingestion with pandas

requests.get()

  • requests.get(url_string) pro získání dat z URL
  • Klíčové argumenty
    • Klíč params: slovník parametrů pro přizpůsobení požadavku API
    • Klíč headers: slovník, lze použít pro ověření uživatele u API
  • Výsledek: objekt response obsahující data a metadata
    • response.json() vrátí pouze JSON data
Streamlined Data Ingestion with pandas

response.json() a pandas

  • response.json() vrací slovník
  • read_json() očekává řetězce, ne slovníky
  • Načtěte JSON odpovědi do datového rámce pomocí pd.DataFrame()
    • read_json() způsobí chybu!
Streamlined Data Ingestion with pandas

Yelp Business Search API

Logo Yelp

Streamlined Data Ingestion with pandas

Yelp Business Search API

Dokumentace Yelp Business Search API. Jsou zobrazeny koncový bod požadavku a některé parametry.

Streamlined Data Ingestion with pandas

Yelp Business Search API

Dokumentace Yelp Business Search API. Je zvýrazněna URL adresa koncového bodu API.

Streamlined Data Ingestion with pandas

Yelp Business Search API

Dokumentace Yelp Business Search API. Je zvýrazněn nepovinný parametr term.

Streamlined Data Ingestion with pandas

Yelp Business Search API

Dokumentace Yelp Business Search API. Jsou zvýrazněny povinné parametry polohy.

Streamlined Data Ingestion with pandas

Yelp Business Search API

Dokumentace Yelp Business Search API s ukázkovým JSON odpovědí

Streamlined Data Ingestion with pandas

Odesílání požadavků

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)
Streamlined Data Ingestion with pandas

Zpracování odpovědí

# 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]
Streamlined Data Ingestion with pandas

Pojďme si procvičit!

Streamlined Data Ingestion with pandas

Preparing Video For Download...