首先,对不起:我可以肯定这可能是“重复”,但我没有成功找到正确的解决方案。
我只是想替换我的sql代码中的所有换行符以将其记录到一行,但是Python的f字符串不支持反斜杠,所以:
# 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字符串之前完成 ,但是我真的很想将我的“日志记录”代码保持在一行中,而没有其他辅助变量。
(此外,我认为这是一种非常愚蠢的行为:您可以在大括号内执行代码,或者不能...不是“可以,而只能使用反斜杠” ...)
由于其他变量,这不是理想的解决方案:
How to use newline '\n' in f-string to format output in Python 3.6?
常规更新 mkrieger1s评论中的建议:
self.logger.debug("Executing %s", sql.replace('\n',' '))
对我来说很好用,但是由于它根本不使用f字符串(蜂鸣本身就是好是坏;),我想我可以把这个问题留待解决。
答案 0 :(得分:0)
您可以做到
newline = '\n'
self.logger.debug(f"Executing: {sql.replace( newline,' ')}")
答案 1 :(得分:0)
chr(10)
(此外,我认为这是一种非常愚蠢的行为:您可以在大括号内执行代码,或者不能...不是“可以,而只能使用反斜杠” ...)
随时进行修复,我很确定没有添加此限制,因为PEP作者和功能开发人员希望它成为麻烦。