Définir les en-têtes de requête
De nombreuses API exigent que les utilisateurs fournissent une clé d’API, obtenue en s’inscrivant au service. Les clés sont généralement transmises dans l’en-tête de la requête, plutôt que comme paramètres.
La documentation de l’API Yelp indique : « Pour authentifier les appels d’API avec la clé d’API, définissez la valeur de l’en-tête HTTP Authorization sur Bearer api_key. »
Vous allez créer un dictionnaire pour transmettre cette information à get(), appeler l’API pour obtenir les cafés les mieux notés à New York, puis analyser la réponse.
pandas (sous le nom pd) et requests ont été chargés. Le point de terminaison de l’API est stocké dans api_url, et la clé dans api_key. Les paramètres se trouvent dans le dictionnaire params.
Cet exercice fait partie du cours
Ingestion de données simplifiée avec pandas
Instructions
- Créez un dictionnaire
headersqui transmet la chaîne de clé formatée à la valeur de l’en-tête "Authorization". - Interrogez l’API Yelp (
api_url) avecget()et les en-têtes et paramètres nécessaires. Enregistrez le résultat dansresponse. - Extrayez les données JSON de
response. Enregistrez le résultat dansdata. - Chargez les valeurs "businesses" de
datadans le dataframecafeset affichez la colonnenames.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create dictionary that passes Authorization and key string
headers = {____: "Bearer {}".format(____)}
# Query the Yelp API with headers and params set
response = ____
# Extract JSON data from response
data = ____
# Load "businesses" values to a dataframe and print names
cafes = ____
print(cafes.name)