首页 > 解决方案 > 如何将 SQLalchemy in_ 与列表对象一起使用?

问题描述

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

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

谢谢!

标签: pythonpython-3.xsqlalchemy

解决方案


推荐阅读