psycopg2" IndexError: tuple index out of range "ошибка при использовании оператора" % " like с аргументами tuple

Это прекрасно работает:

 cc.execute("select * from books where name like '%oo%'")

но если второй аргумент:

cursor.execute("select * from books where name like '%oo%' OFFSET % LIMIT %", (0,1))

Psycopg ошибки:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

Как избежать этой ошибки?

1 ответов


прежде всего, вы должны использовать %% вставить % literal, иначе библиотека попытается использовать all % в качестве заполнителей. Во-вторых, лучше указать %s, где вы хотите вставить значения.

Итак, ваш код должен выглядеть так:

cursor.execute("select * from books where name like '%%oo%%' OFFSET %s LIMIT %s", (0,1))