Как с помощью Python 3 и модуля re избежать двойных кавычек в инструкции INSERT для SQL Server?
Я пробовал много разных способов, но SQL Server всегда выдает ошибку форматирования.
Вот пример:
INSERT INTO [events] VALUES ('<span style=\"font-size:14px;\"><span style=\"font-family:\'Times New Roman\', Times, serif;\">
Моя последняя попытка была такой:
escaped_statement = re.sub(r'\"', r'\"\"', escaped_statement)
Но это возвращает это:
<span style='\"\"font-size:14px;
Зачем вам пытаться избежать кавычек, добавляя больше кавычек? Кроме того, использование стиля непосредственно в теге не является оптимальным. Почему вы не используете класс?
Это ответ на ваш вопрос? Как использовать переменные в операторе SQL в Python?
Поскольку T-SQL использует для экранирования два символа, @OysterShucker. SELECT '''' вернулся бы '.
@ThomA Но у них нет двух персонажей "", у них есть этот \"\".
Если вы избегаете строк из внешнего мира, вы уже проиграли игру, прочитайте о SQL-инъекции. Используйте параметры при выполнении sql, и все должно быть в порядке.






Ваш пример должен быть таким: INSERT INTO [events] VALUES ('<span style = "font-size:14px;"><span style = "font-family:''Times New Roman'', Times, serif;">')
Зачем вам экранировать двойные кавычки, в SQL это не имеет значения, любое содержимое внутри одинарных кавычек 'string' считается строковым литералом. и если вы хотите избежать одинарных кавычек, вы можете просто использовать двойные одинарные кавычки '' вместо одинарных кавычек '.
style = "font-family:"Times New Roman"...;" сломается. У вас не может быть " внутри ".
Проблема не в двойных кавычках, а в одинарных кавычках, и если вы параметризировали, это тоже не проблема. Классическая Проблема XY.