Python 奇怪的sqlalchemy错误与'|';操作人员
所以我用sqlalchemy创建了一个查询,我不知道为什么会出现这个错误。基本上,我的代码如下所示:Python 奇怪的sqlalchemy错误与'|';操作人员,python,sqlalchemy,Python,Sqlalchemy,所以我用sqlalchemy创建了一个查询,我不知道为什么会出现这个错误。基本上,我的代码如下所示: def post(self, semestr): nazwa_kierunku = 'stac. I st., kier. informatyka' nr_semestru = 2 nr_grupy_cw = 3 nr_grupy_ps = 5 nr_grupy_l = 7 nr_grupy_w = 1 nr_grupy_p = 2
def post(self, semestr):
nazwa_kierunku = 'stac. I st., kier. informatyka'
nr_semestru = 2
nr_grupy_cw = 3
nr_grupy_ps = 5
nr_grupy_l = 7
nr_grupy_w = 1
nr_grupy_p = 2
nr_grupy_s = 5
nr_grupy_j = 5
nr_grupy_wf = 1
prowadzacy_tytul_subq = model.Prowadzacy.query.join(model.Tytul).subquery()
query = (
model.Grupa.query.join(prowadzacy_tytul_subq,
model.Studia,
model.Przedmiot,
model.Sala)
.filter(model.Studia.nazwa == nazwa_kierunku)
.filter(model.Grupa.nr_semestru == nr_semestru)
.filter((model.Grupa.rodzaj == 'Ćw', model.Grupa.nr_grupy == nr_grupy_cw) | (model.Grupa.rodzaj == 'Ps' , model.Grupa.nr_grupy == nr_grupy_ps))
)
print(query)
result = schema.GrupaSchema().dump(query, many=True)
return jsonify(result)
当我将鼠标移到“|”操作符上时,我得到的“Class”(bool,bool)“没有定义“或””,因此“|”操作符不能用于其实例”
在编译过程中,我得到
“sqlalchemy.exc.ArgumentError:应为SQL表达式对象或字符串,但得到的对象类型为“我做错了什么?”在
sqlalchemy
库中,应使用带条件的或
并验证condition_1
和condition_2
是否为bool
对象。而不是你提到的类(bool,bool)
例如:
from sqlalchemy import or_, and_
select().where( or_(condition_1, condition_2) )
您是否尝试过改为
或
?当我使用“或”时,我得到的错误是:“sqlalchemy.exc.ArgumentError:应为SQL表达式对象或字符串,而应为get类型的对象”或
应为两边都有布尔值。您正在执行(bool,bool)或(bool,bool)
。尝试将其更改为(bool和bool)或(bool和bool)
好的,代码在更改后开始编译,但我打印了这个查询,我可以看到在这个查询中没有来自上一个过滤器的任何内容,就像这行不存在“WHERE studia.nazwa=%(nazwa_1)s和grupa.nr_semestru=%(nr_semestru 1)s和grupa.rodzaj=%(rodzaj_1)s”查询就是这样结束的。