Filtrer des données sélectionnées depuis une Table - Expressions
En plus des comparateurs Python standard, nous pouvons aussi utiliser des méthodes comme
in_() pour créer des clauses where() plus puissantes. Vous trouverez la liste complète des
expressions dans la documentation SQLAlchemy.
La méthode in_(), utilisée sur une colonne, permet d’inclure les enregistrements dont la valeur d’une colonne figure dans une liste de valeurs possibles. Par exemple, where(census.columns.age.in_([20, 30, 40])) ne renverra que les enregistrements pour les personnes ayant exactement 20, 30 ou 40 ans.
Dans cet exercice, vous continuez à travailler avec la table census et allez sélectionner les enregistrements correspondant aux personnes des trois États les plus densément peuplés. La liste de ces États a déjà été créée pour vous.
Cet exercice fait partie du cours
Introduction aux bases de données en Python
Instructions
- Sélectionnez tous les enregistrements de la table
census. - Modifiez l’argument de la clause
wherepour utiliserin_()et renvoyer tous les enregistrements où la valeur de la colonnecensus.columns.statefigure dans la listestates. - Parcourez le ResultProxy
connection.execute(stmt)et affichez les colonnesstateetpop2000de chaque enregistrement.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Define a list of states for which we want results
states = ['New York', 'California', 'Texas']
# Create a query for the census table: stmt
stmt = select(____)
# Append a where clause to match all the states in_ the list states
stmt = stmt.where(____)
# Loop over the ResultProxy and print the state and its population in 2000
for ____ in connection.execute(____):
print(____, ____)