Я обнаружил, что та же самая ошибка повторяется даже после того, как я попробовал все приведенные выше решения. Я даже попробовал версию 5.7 и еще немного. Парни не тратят ваше время, пытаясь это исправить. Скорее установите версию 5.5. Работает отлично, без лишних ошибок.
Если это часть запроса к базе данных, вы должны иметь возможность использовать Параметризованный оператор SQL .
Помимо экранирования кавычек, он будет работать со всеми специальными символами и защитит вас от атак SQL-инъекций .
Для решения более общей проблемы у меня есть программа, в которой мне нужно сохранить любой набор символов в плоском файле. , разделены табуляцией. Очевидно, наличие вкладок в «наборе» вызывало проблемы.
Вместо output_f.write (str) я использовал output_f.write (repr (str)), что решило мою проблему. Это медленнее читать, так как мне нужно eval () вводить, когда Я читал его, но в целом он делает код чище, потому что мне больше не нужно проверять второстепенные случаи.
Если вы используете psycopg2, у которого есть метод экранирования строк: psycopg2.extensions.adapt ()
См. Как явно заключить строковое значение в кавычки (Python DB API / Psycopg2) для получения полного ответа