Фільтрування даних, вибраних із Table — вирази
Окрім стандартних операторів порівняння в Python, можна також використовувати методи на кшталт in_(), щоб створювати потужніші вирази where(). Повний перелік виразів наведено в документації SQLAlchemy.
Метод in_(), застосований до стовпця, дає змогу включити записи, у яких значення цього стовпця входить до списку можливих значень. Наприклад, where(census.columns.age.in_([20, 30, 40])) поверне лише записи для людей рівно 20, 30 або 40 років.
У цій вправі ви продовжите роботу з таблицею census і виберете записи для людей із трьох штатів з найбільшою щільністю населення. Список цих штатів уже підготовлено для вас.
Ця вправа є частиною курсу
Вступ до баз даних у Python
Інструкції до вправи
- Виберіть усі записи з таблиці
census. - Змініть аргумент у виразі
where, щоб використатиin_()і повернути всі записи, де значення у стовпціcensus.columns.stateналежить спискуstates. - Проітеруйтеся по ResultProxy
connection.execute(stmt)і виведіть стовпціstateтаpop2000з кожного запису.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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(____, ____)