Wprowadzenie do API

Sprawne importowanie danych z pandas

Amany Mahfouz

Instructor

Interfejsy programowania aplikacji

  • Definiuje sposób komunikacji aplikacji z innymi programami
  • Umożliwia pobieranie danych z aplikacji bez znajomości szczegółów bazy danych

Formularz z niektórymi wypełnionymi i pustymi polami

Sprawne importowanie danych z pandas

Interfejsy programowania aplikacji

  • Definiuje sposób komunikacji aplikacji z innymi programami
  • Umożliwia pobieranie danych z aplikacji bez znajomości szczegółów bazy danych

Formularz i sklep. Strzałka wskazuje, że formularz jest wysyłany do sklepu.

Sprawne importowanie danych z pandas

Interfejsy programowania aplikacji

  • Definiuje sposób komunikacji aplikacji z innymi programami
  • Umożliwia pobieranie danych z aplikacji bez znajomości szczegółów bazy danych

Otwarta paczka i sklep. Paczka zastąpiła formularz zamówienia. Strzałka wskazuje, że sklep wysłał paczkę.

Sprawne importowanie danych z pandas

Requests

  • Wysyłanie i pobieranie danych ze stron internetowych
  • Nie jest powiązana z konkretnym API
  • requests.get() pobiera dane z URL

Logo requests

Sprawne importowanie danych z pandas

requests.get()

  • requests.get(url_string) pobiera dane z URL
  • Argumenty kluczowe
    • Słowo kluczowe params: słownik parametrów do dostosowania żądania API
    • Słowo kluczowe headers: słownik, może służyć do uwierzytelniania użytkownika w API
  • Wynik: obiekt response zawierający dane i metadane
    • response.json() zwraca wyłącznie dane JSON
Sprawne importowanie danych z pandas

response.json() i pandas

  • response.json() zwraca słownik
  • read_json() oczekuje ciągów znaków, nie słowników
  • Załaduj JSON odpowiedzi do ramki danych za pomocą pd.DataFrame()
    • read_json() zwróci błąd!
Sprawne importowanie danych z pandas

Yelp Business Search API

Logo Yelp

Sprawne importowanie danych z pandas

Yelp Business Search API

Dokumentacja Yelp Business Search API. Widoczny endpoint żądania i wybrane parametry.

Sprawne importowanie danych z pandas

Yelp Business Search API

Dokumentacja Yelp Business Search API. Wyróżniony URL endpointu API.

Sprawne importowanie danych z pandas

Yelp Business Search API

Dokumentacja Yelp Business Search API. Wyróżniony opcjonalny parametr term.

Sprawne importowanie danych z pandas

Yelp Business Search API

Dokumentacja Yelp Business Search API. Wyróżnione wymagane parametry lokalizacji.

Sprawne importowanie danych z pandas

Yelp Business Search API

Dokumentacja Yelp Business Search API z przykładową odpowiedzią JSON

Sprawne importowanie danych z pandas

Wysyłanie żądań

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)
Sprawne importowanie danych z pandas

Przetwarzanie odpowiedzi

# 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]
Sprawne importowanie danych z pandas

Czas na ćwiczenia!

Sprawne importowanie danych z pandas

Preparing Video For Download...