如何在列表对象中使用SQLalchemy?

2024-09-30 22:15:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图根据一些预先选定的项目查询数据库,结果遇到了一个奇怪的情况。首先,我从数据库中的一个表中预先选择了一些参数,这些参数将用作查询中的过滤器:

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),我实际上会得到我应该得到的结果。是我遗漏了什么还是我真的遇到了一些奇怪的错误

谢谢


Tags: 项目in数据库过滤器df列表参数情况