Я пытался сделать запрос к базе данных на основе предварительно выбранных элементов и столкнулся со странной ситуацией. Я начал с предварительного выбора некоторых параметров, которые я хотел бы использовать в качестве фильтра в запросе к одной из таблиц в базе данных:
MX_noaa_numbers = list(Events_df[Events_df['flareclass'].str.contains('M|X')].noaanumber.unique())
, которая создает список, такой как:
[11583,11611,11771,11777,11778,11865,12253,11967,11968,...,12673]
Но когда я попытался получить результаты, используя:
session.query(ActiveRegion).filter(sql.or_(ActiveRegion.noaa_number1.in_(MX_noaa_numbers),
ActiveRegion.noaa_number2.in_(MX_noaa_numbers),
ActiveRegion.noaa_number3.in_(MX_noaa_numbers))).all()
, он возвращает мне пустой список. Однако, если я напечатаю MX_noaa_numbers
и скопирую вывод внутри оператора in_()
, заменяющего имя объекта (MX_noaa_numbers
), я получу результаты, как и должен. Я что-то упустил или я действительно столкнулся с какой-то странной ошибкой?
Спасибо!