psycopg2 (через DB-API) будет автоматически заключать в кавычки, чтобы предотвратить инъекцию SQL, если вы используете его правильно.(Путь Python неверен; вы должны передать параметры в качестве аргументов самой команде запроса.)
НЕПРАВИЛЬНО:
cur.execute('select * from table where last="%s" and first="%s"'
% (last, first))
RIGHT:
cur.execute('select * from table where last=%s and first=%s',
(last, first))
Примечание: вы не используете% и не ставите кавычки вокруг своих значений.
Синтаксис немного отличается для MySQLdb и sqlite3.(Например, sqlite использует? Вместо% s.)
Кроме того, для psycopg2 всегда используйте% s, даже если вы имеете дело с числами или другим типом.