我反映了我的MySQL数据库的一些表格,并且我想在他们的一些列上应用过滤器。
meta = MetaData(bind=engine)
table_backlog= meta.tables['backlog']
all_filters = and_(and_(*all_filters),and_(table_backlog.c.month != "NULL",table_backlog.c.month != None))
但问题是,有时列名称会从month
更改为Month
,因此我的程序不再有效。 (我无法控制数据库,它由其他人管理)。
那么有没有办法让SQLAlchemy / Python中的列不区分大小写?
答案 0 :(得分:0)
可能有更好的方法,但一种简单的方法就是让列忽略区分大小写:
meta = MetaData(bind=engine)
table_backlog= meta.tables['backlog']
cols = [_c for _c in table_backlog.columns if _c.name.lower() == "month"]
assert (cols and len(cols) == 1), 'None or multiple column(s) named "month" found'
col_month = cols[0]
all_filters = and_(and_(*all_filters),and_(month_col != "NULL", month_col != None))