top of page

Récupération et traitement de données API avec l’utilisation de requests et pandas.

Updated: Mar 7


Les API sont de plus en plus utilisées pour échanger des données. La bibliothèque

requests de Python est très pratique pour récupérer des données API. Une fois ces données récupérées il devient très simple de les manipuler avec la bibliothèque Pandas.


Nous allons dans ce tutoriel explorer la récupération et la manipulation des données API open source de la SNCF. Plus précisément nous allons créer un DataFrame pandas qui contiendra les données de la base « Fréquentation en gares » disponibles via l’API de la SNCF.


L’accès se fait sur ce site.




Nous allons directement sur la base de données qui nous intéressent, à savoir la base « Fréquentation en gares » via ce lien.



Dans un premier temps nous allons paramétrer dans la console API le champ « limit » sur 100. Ceci va permettre de récupérer les 100 premières lignes de la base de données. Le serveur de la version de cette API nous empêche de générer une URL qui va restituer plus que 100 lignes de données. C’est pour cela que l’on paramètre la limite sur 100, on récupère le maximum possible de ligne. Il existe une solution pour récupérer l’intégralité de la base mais ce n’est pas l’objet ici.




Puis en bas de la page on clique sur « envoyer » et enfin sur l’URL juste en dessous.



Cela ouvre une nouvelle page qui contient toutes les données. C’est l’URL de cette nouvelle page que nous allons récupérer pour intégrer les données.



Dans un notebook, exécuter le code suivant pour importer les librairies :



Puis isoler l’URL précédemment copiée dans une variable :



Ensuite se connecter à l’URL à l’aide de la fonction get() de la librairie requests. Isoler les données de l’URL dans une variable « connexion » à l’aide de la méthode json() de la librairie requests. Créer un dictionnaire vide qui va récupérer les données.



On pourrait gérer dans le code les problèmes de connexions et d’autres erreurs mais cela n’est pas non plus l’objet ici.


On constate « [‘results’ ] » dans le code après l’emploi de la méthode json() sur l’objet « connexion », cela s’explique par la structure du code JSON visible dans la console de l’API. C’est en fait une clé de dictionnaire qui va nous permettre d’accéder aux données. Si on ne la spécifie pas ici alors on ne récupérera rien.



Enfin nous bouclons sur les indices de « data » grâce à « range(len(data)) » pour récupérer toutes les données dans le dictionnaire « dict_gare ». La variable « data » n’est rien d’autre qu’une liste de dictionnaire. Chaque dictionnaire représente une gare avec ses données. Ce code permet d’insérer dans le nouveau dictionnaire toutes les colonnes de chaque gare de la base de données.




Puis à l’aide de la méthode loc, on récupère les colonnes sur lesquelles on souhaite travailler.



A partir de là vous pouvez effectuer tous les travaux de transformations que vous souhaitez.

N’hésitez pas à nous contacter si vous avez des questions.

N’hésitez pas nous plus à consulter nos propositions de formations Python.



Comments


bottom of page