Comment récupérer des données d'une base de données en Python ? Importation de données à l'aide de Python

Publié: 2021-03-09

L'analyse de données est une compétence essentielle pour les jeunes diplômés, ingénieurs et gestionnaires dans l'environnement de travail actuel axé sur la technologie. Dans cet article, nous expliquerons comment extraire des données d'une base de données en python et vous familiariserons avec certains concepts fondamentaux.

Table des matières

Extraction de données avec la base de données P ython

L'extraction de données implique de récupérer des données à partir de diverses sources, et parfois de les traiter davantage, et de les migrer vers des référentiels pour une analyse plus approfondie. Ainsi, une sorte de transformation des données se produit dans le processus. Et python est l'un des principaux langages de programmation pour ces tâches de science des données. Il y a environ 8,2 millions d'utilisateurs de ce langage à usage général et de script à travers le monde.

Dans le guide suivant, nous discuterons des méthodes d'extraction utilisant PostgreSQL, un système de base de données relationnelle open source. Il fournit une fonction ROW_TO_JSON qui renvoie les jeux de résultats sous forme d'objets JSON, qui sont entourés d'accolades {}. Les types de données JSON vous aideraient à manipuler les résultats de la requête plus facilement. Mais avant de commencer, assurez-vous que vous avez installé un environnement virtuel, tel que psycopg2-binary.

Principes de base de la base de données Python

Supposons que vous disposiez d'une base de données PostgreSQL de la Ligue nationale de football américaine (NFL). Cela inclurait des informations sur les tables des joueurs, des entraîneurs et des équipes. Notez également les détails suivants pour vous renseigner sur les données stockées :

  • La table de données des joueurs contient des détails tels que athelete_id, qui est la clé primaire, les noms et prénoms des joueurs, les numéros de maillot, le poids (en kg), la taille (en m) et leur pays d'origine. Il contient également le team_id, une clé étrangère indiquant l'équipe de chaque athlète.
  • La table de données sur les entraîneurs contient coach_id (clé primaire), ainsi que le prénom et le nom, et team_id (une clé étrangère faisant référence au champ de la table des équipes).
  • Enfin, il y a le tableau des équipes qui décrit chaque équipe de football avec un nom, une conférence, leur classement et le total des victoires et des défaites (divisé en « domicile » et « extérieur »). Ici, la clé primaire est team_id, qui est référencée dans les tableaux ci-dessus.

Maintenant que vous êtes familiarisé avec l'ensemble de données, explorons comment écrire une requête SQL pour récupérer une liste d'équipes. Par exemple, vous avez besoin d'équipes de football classées en fonction de leur conférence et de leur rang. Vous souhaitez également extraire le nombre d'athlètes ou de joueurs dans chaque équipe ainsi que les noms de leurs entraîneurs. Vous voudrez peut-être aussi connaître le nombre de victoires et de défaites des équipes, à domicile et à l'extérieur.

Suivez les étapes ci-dessous pour démarrer ce processus :

SÉLECTIONNER

f.nom,

f.ville,

f.conférence,

f.conference_rank,

COUNT(a.player_id) AS number_of_athletes,

CONCAT(c.first_name, ' ', c.last_name) AS coach,

f.home_wins,

f.away_wins

DES athlètes a, équipes f, entraîneurs c

WHERE a.team_id = f.team_id

ET c.team_id = f.team_id

GROUP BY f.name, c.first_name, c.last_name, f.city, f.conference, f.conference_rank, f.home_wins, f.away_wins

ORDRE PAR f.conference, f.conference_rank

Après cela, vous pouvez déformer la requête dans la fonction JSON mentionnée précédemment (ROW_TO_JSON). Cela enregistrera les données dans un fichier appelé query.sql dans votre répertoire actuel. Maintenant, continuez avec les étapes ci-dessous.

SELECT ROW_TO_JSON(infos_équipe) DE (

SÉLECTIONNER

f.nom,

f.ville,

f.conférence,

f.conference_rank,

COUNT(a.athelete_id)AS number_of_atheletes,

CONCAT(c.first_name, ' ', c.last_name) AS coach,

f.home_wins,

f.away_wins

DES athlètes a, équipes f, entraîneurs c

WHERE a.team_id = f.team_id

ET c.team_id = f.team_id

GROUP BY f.name, c.first_name, c.last_name, f.city, f.conference, f.conference_rank, f.home_wins, f.away_wins

ORDRE PAR f.conference, f.conference_rank

) AS team_info

Vous observerez que chaque ligne a la structure d'un dictionnaire python. Les clés sont simplement les noms de champs renvoyés par votre requête.

De plus, pour éviter d'exposer vos variables d'environnement à la vue de tous, vous pouvez appliquer certaines modifications à vos fichiers d'initialisation. Choisissez l'une des méthodes suivantes, en fonction de vos besoins :

  • Pour Windows : Panneau de configuration → Système → Paramètres système avancés → Onglet Avancé → Variables d'environnement.
  • Pour un environnement de type Unix : ajoutez deux lignes concernant votre nom d'utilisateur et votre mot de passe à votre fichier d'initialisation.

Avec cela, vous êtes prêt à écrire du code python. Au tout début, nous allons importer certains modules et fonctions pour éviter les erreurs. Ces déclarations peuvent vous aider à y parvenir :

importer le système d'exploitation

importer psycopg2 en tant que p

de l'erreur d'importation psycopg2

Ensuite, nous allons instancier la connexion en chargeant le contenu de query.sql. Ouvrez le fichier de base de données SQL à l'aide des commandes d'ouverture et de lecture et connectez-vous à la base de données NFL à l'aide de la fonction de connexion en spécifiant l'utilisateur, le mot de passe, l'hôte et le numéro de port de votre base de données.

A lire également : Projets Python sur GitHub

Comment récupérer des données d'une base de données en Python ?

Une fois que vous avez établi la connexion à la base de données, vous pouvez poursuivre l'exécution de la requête. Vous devez utiliser une structure de contrôle appelée 'curseur'. C'est aussi simple que d'écrire "cursor = conn.cursor()" et ensuite, "cursor.execute(query)". Le résultat contiendrait alors une liste de tuples (un élément) dans un format de dictionnaire.

résultat = curseur.fetchall()

À ce stade, vous pouvez essayer d'itérer sur le résultat. Vous pouvez manipuler le contenu comme vous le souhaitez, l'insérer ou l'alimenter dans des feuilles de calcul, des tableaux HTML, etc. N'oubliez pas d'envelopper et de nettoyer votre code pendant que vous avez terminé. Vous pouvez le faire avec un try-except-block et en ajoutant une phrase "finally".

Lorsque vous manipulez de grands ensembles de données, relationnels ou autres, vous ressentez le besoin de certains outils de base pour interroger les tables, en particulier lorsque vous souhaitez également manipuler les résultats. Une telle transformation de données est facile à réaliser avec python.

Par conséquent, la plupart des programmes d'études de troisième cycle incluent la connaissance de ces techniques dans le cadre du programme d'études. Quelques exemples incluent le diplôme d'associé en science des données (IIIT-Bangalore) et le Global Master Certificate in Business Analytics (Michigan State University).

Paiement : Idées de projets Python Open Source

Conclusion

Dans ce didacticiel sur la base de données Python , nous avons appris à connecter une base de données relationnelle, à exécuter des requêtes et à importer des résultats. Vous pouvez faire beaucoup plus avec python et adapter votre code pour faire ce que vous désirez.

Nous espérons que ce guide vous a aidé à trouver un peu de clarté et a éveillé votre curiosité !

Apprenez des cours de science des données dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Comment extraire des données d'une API à l'aide de requêtes Python ?

Lorsque vous souhaitez recevoir des données d'une API, vous devez effectuer une requête auprès du serveur, tout comme lorsque vous interagissez avec des sites Web classiques. Nous devrons utiliser le package requests pour obtenir des données à partir d'une API utilisant Python. En Python, Requests est la bibliothèque standard pour effectuer des requêtes HTTP. En raison de ses abstractions, il est vraiment facile à utiliser, en particulier lorsque vous travaillez avec des API.
Lorsque nous utilisons la bibliothèque de requêtes pour exécuter une requête, nous obtenons un objet de requête qui contient les données que nous voulons extraire ainsi qu'un code d'état de la requête. Le code d'état nous informe sur l'état de la demande et fait partie de chaque demande que nous faisons. Selon les informations qu'ils renvoient, les codes sont divisés en centaines de valeurs différentes.

Comment connecter SQLite avec Python ?

une. Nous devons importer sqlite3 pour pouvoir utiliser SQLite.
b. Ensuite, en utilisant la méthode de connexion, établissez une connexion et indiquez le nom de la base de données à laquelle vous souhaitez accéder ; si un fichier portant ce nom existe, il sera ouvert. Python créera un fichier avec le nom fourni si vous n'en spécifiez pas.
c. Ensuite, un objet curseur est créé qui peut envoyer des commandes SQL. Le curseur est une structure de contrôle pour parcourir et récupérer les enregistrements de la base de données. Lorsqu'il s'agit de Python, le curseur est vraiment important. L'objet curseur sera utilisé pour exécuter toutes les commandes.
ré. Créez un objet et écrivez-y l'instruction SQL avec des commentaires pour créer une table dans la base de données. Exemple : - sql_comm = instruction SQL.
e. Et exécuter la commande est un jeu d'enfant. Exécutez la méthode du curseur, en passant le nom de la commande sql comme argument. Enregistrez une liste de commandes en tant que variable sql_comm et exécutez-les. Une fois que vous avez terminé toutes vos tâches, enregistrez les modifications apportées au fichier en les validant, puis déconnectez-vous.

Python est-il bon pour les bases de données ?

Python est particulièrement bien adapté aux données tabulaires structurées qui peuvent être obtenues avec SQL mais nécessitent ensuite des manipulations supplémentaires qui seraient difficiles à accomplir avec SQL seul.