Я новичок в python и SQLAlchemy, поэтому извините, если этот вопрос кажется очевидным: Я пытаюсь создать динамический запрос, передав имена столбцов для фильтрации как:
filter_by = {"or":{"origin_source_id":"MX01",
"origin_client_id":"JP0001"}}
Я могу использовать операторы 'or' / 'и' / '>' / '<'
цель состоит в том, чтобы создать такое выражение, как:
session.query(dbClass).filter(dbClass.origin_client_id=='JP0001' or dbClass.origin_source_id=='MX01')
и если определено следующее:
filter_by = {"origin_source_id":"MX01"}
чтобы создать выражение вроде:
session.query(dbClass).filter(dbClass.origin_source_id= = "MX01")
и если он определен как:
filter_by = {"and":{"origin_source_id":"MX01",
"origin_client_id":"JP0001"}}
выражение должно быть:
session.query(dbClass).filter(dbClass.origin_client_id=='JP0001' or dbClass.origin_source_id=='MX01')
Может ли кто-нибудь объяснить мне, как разбирать filter_by и извлекать значения для построения выражения запроса?
Мне не удается понять, с чего начать.
Спасибо
не уверен, что понимаю «попробуй или». Я не хочу использовать для этого внешний пакет. Мне очень приятно знать, по крайней мере, как разобрать выражение filter_by и получить его элементы.
Попробуйте
or_
. В противном случае elasticsearch полностью поддерживает такие вещи.