Игнорирование ключевого слова в update запросе

Приключилась досадная ситуация, имя одного из полей таблицы, которую я использую совпадает с ключевым словом pass. При попытке создать update запрос, с указанием этого поля в values выкидывает синтаксическую ошибку. Подскажите как можно обойти эту ситуацию? Поле переименовать невозможно, т.к таблица используется и другими сервисами.

engine = create_engine(config.user_base_data ,echo = False)
meta = MetaData(engine)
connector = engine.connect()

client = Table('client' , meta, autoload = True)
client_ip = Table('client_ip', meta, autoload = True, )
ip_tariff = Table('ip_tariff', meta, autoload = True)
payment = Table('payment', meta, autoload = True)

def update_password(message, password, login):
    if password == message.text:текст, выделенный жирным шрифтом
        password_update_query = update(client).where(client.c.id == login).values(pass = password)
        password_update = connector.execute(password_update_query)
        bot.send_message(message.chat.id, 'Пароль изменен')
    else:
        bot.send_message(message.chat.id, 'Пароли не совпадают')

Ответы (1 шт):

Автор решения: Roman Konoval

Передавайте аргументы разворачивая kwargs:

update(client).where(client.c.id == login).values(**{'pass': password})

Эта проблема не имеет отношения к sqlalchemy или sql. В питоне нельзя использовать ключевые слова в качестве имен:

>>> def f(**kwargs):
...   print(kwargs)
...
>>> f(pass=1)
  File "<stdin>", line 1
    f(pass=1)
         ^
SyntaxError: invalid syntax
>>> f(**{'pass': 1})
{'pass': 1}
→ Ссылка