construir filtros dinâmicos no sqlalchemy python

Eu preciso gerar / criar consulta sqlalchemy dinamicamente usando colunas dinâmicas e seus valores.

Exemplo - Eu tenho uma tabela no SQL chamada "Convo" e tem colunas como - UserID, ConvoID, ContactID.

Preciso obter linhas com base nos critérios abaixo.

criteria = (('UserID', 2), ('ConvoID', 1) ,('ContactID', 353))

Eu usei a lógica "consulta assada" para isso. Mas alguns como eu não sou capaz de executar esta consulta com sucesso.

Abaixo está o meu código.

criteria = (('UserID', 2), ('ConvoID', 1) ,('ContactID', 353))
baked_query = bakery(lambda session: session.query(tablename))
for key1 in condition:
    baked_query += lambda q: q.filter(tablename.key1 == condition[key1])
    result = baked_query(self.session).all()

Estou recebendo erro como -

AttributeError: type object 'Convo' has no attribute 'key1'

Por favor me ajude com isso

questionAnswers(2)

yourAnswerToTheQuestion