Skip to main content
Sciences humaines numériques @ uOttawa

Travailler avec l'API de Zomato

Le travail sur les données relatives aux restaurants a commencé par l'acquisition de fichiers de tableurs pour les restaurants, les dépanneurs, les établissements de restauration rapide, les confiseries et les magasins d'alimentation spécialisée de l’Étude des quartiers d’Ottawa (ÉQO). De là, Candide a compilé tous les fichiers des restaurants dans une feuille de calcul et les a envoyés à Lori.

UO-SHN-2020-ZomatoAPI-Call.PNG

L'API Zomato était un outil utile que nous avons utilisé pour extraire des données sur les restaurants d'Ottawa, telles que leurs types de cuisine et leurs adresses, sans avoir à passer manuellement par Zomato, Yelp, TripAdvisor etc. pour trouver tous les restaurants d'Ottawa qui servent des aliments ethniques. Cela nous a également permis de réduire le travail manuel pour trouver les types de cuisine des restaurants.

Pour faire l'appel API de Zomato, Lori a dû générer une clé API via leur site web. Une clé API est en fait un code qui vous permet de vous authentifier pour pouvoir utiliser l'API de Zomato. Une fois la clé API générée, nous avons commencé à écrire un script Python pour extraire tous les restaurants d'Ottawa, ainsi que tous les attributs que Zomato possède sur ces restaurants. Afin de pouvoir extraire des données de restaurants à travers Ottawa, nous devions nous assurer que le script définissait l'attribut de localisation de tous les secteurs d'Ottawa qui sont identifiés dans Zomato : Ottawa Est, Ottawa Ouest, Ottawa Centre et Ottawa Sud.

Lori a utilisé la ligne de code suivante pour effectuer une recherche dans la base de données Zomato sur la base des valeurs d'attribut spécifiées :

Zomato_API = "https://developers.zomato.com/api/v2.1/search?entity_id=94138&entity_type=zone&start="+str(start)+"&count="+str(count)+"&lat=45.46986607392&lon=-75.37735539688"

Dans cet appel, elle a pu récupérer des données sur les restaurants de la zone Ottawa Central (indiqués à l'aide des attributs entity_id, entity_type, lat et lon). Zomato possède également un attribut start et count. L'attribut start indique à quelle ligne de la base de données vous allez commencer à extraire des données. L'attribut count est le nombre de lignes que chaque appel va extraire.

La seule limitation à laquelle nous avons été confrontés en utilisant l'API de Zomato est qu'elle n'extrait que 20 restaurants par appel. Nous avons pu résoudre ce problème facilement en modifiant le script pour continuer à boucler jusqu'à ce que l'appel API cesse de produire des données. Notre script a ensuite compilé toutes les données dans un seul fichier JSON. Pour faciliter la compilation et le nettoyage des données, nous avons utilisé OpenRefine pour convertir le fichier JSON en CSV.

 

UO-SHN-2020-Donnees-restaurants.jpg

Lori a ensuite fusionné les ensembles de données de Zomato et de l'ONS, et a procédé à un retrait préliminaire des entrées qui étaient des chaînes de restauration rapide. Ensuite, Lori, Liam et Candide avons procédé au nettoyage des données pour supprimer les restaurants proposant des types de cuisine canadiens et américains, ajouter les types de cuisine manquants, corriger les noms et adresses, et ajouter le(s) continent(s) associé(s) pour chaque restaurant. Au cours de ce processus, si quelqu’un trouvais un article intéressant sur un propriétaire de restaurant qui était un immigrant, il le transmettais à l'équipe de recherche.

Ensuite, Lori a séparé la liste de restaurants nettoyée par continent, et elle et Candide ont téléchargé les ensembles de données sur leur carte ArcGIS respective.

Les cartes de la cuisine ethnique à Ottawa sont accessibles via ArcGIS Online: