Прежде всего, извините: я вполне уверен, что это может быть «дубликат», но мне не удалось найти правильное решение.
Я просто хочу заменить все разрывы строк в моем sql-кодедля записи в одну строку, но f-строка Python не поддерживает обратную косую черту, поэтому:
# Works fine (but is useless ;))
self.logger.debug(f"Executing: {sql.replace( 'C','XXX')}")
# Results in SyntaxError:
# f-string expression part cannot include a backslash
self.logger.debug(f"Executing: {sql.replace( '\n',' ')}")
Конечно, есть несколько способов сделать это до f-строки,но мне бы очень хотелось, чтобы мой код «log the line» был в одной строке и без дополнительных вспомогательных переменных.
(Кроме того, я думаю, что это довольно глупое поведение: либо вы можете выполнять код в фигурных скобкахили вы не можете ... не "вы можете, но только без обратной косой черты" ...)
Это нежелательное решение из-за дополнительных переменных:
Как использовать новую строку '\ n' в f-строке для форматирования вывода в Python 3.6?
Общее обновление Предложение в комментарии mkrieger1s:
self.logger.debug("Executing %s", sql.replace('\n',' '))
Работает нормально для меня, но так как он вообще не использует f-строки (сам по себе хороший или плохой;)), думаю, я смогу оставить этот вопрос открытым.