Вы не можете передавать имена столбцов в качестве параметров запроса. Вам необходимо объединить имена столбцов в строке запроса (сохраняя значения столбцов в качестве параметров).
Это должно выглядеть следующим образом:
self.cursor.execute(
"select distinct "
+ attribute2
+ " from isap.tn_documentation where "
+ attribute1 + " = ? and " + attribute2 + " <> ''",
i.text(0)
)
Обратите внимание, что при этом подвергается ваш код в SQL внедрение: если ваши атрибуты вводятся извне вашего кода, это серьезное нарушение безопасности. Вам необходимо убедиться, что они не содержат вредоносных данных (например, проверяя значение каждого атрибута по фиксированному списку допустимых значений: это должно быть довольно просто, поскольку мы имеем дело с именами столбцов).