SyntaxError:f-string表达式部分不能包含反斜杠

我有这个api调用。

payload = "{"weight":{"value":"85.00","unit":"kg"},"height":{"value":"170.00","unit":"cm"},"sex":"m","age":"24","waist":"34.00","hip":"40.00"}"

我想使用 af 字符串来更改这些值,但出现语法错误,提示我不能对 f 字符串使用反斜杠。我能做什么?

回答

这是目前在 python 中 f-strings 的一个限制。它们中根本不允许使用反斜杠(请参阅https://mail.python.org/pipermail/python-dev/2016-August/145979.html)

选项1

最好的方法是使用 usestr.format()来完成此操作,根据https://docs.python.org/3/library/stdtypes.html#str.format

选项 2

如果你非常喜欢使用反斜杠,你可以这样做:

backslash_char = ""
my_string = f"{backslash_char}foo{bar}"

但这可能不是让您的代码对其他人可读的最佳方式。

选项 3

如果您绝对确定您永远不会使用特定字符,您也可以将该字符作为占位符放入,例如

my_string = f"foo{bar}".replace("", "")

但这也是超级解决方法。如果您收到包含该字符的输入,那么这是一种在未来引入错误的好方法。

选项 4

正如对此答案的评论中所述,另一种选择是chr(92)在一些卷曲中进行,如下所示:

my_string = f"This is a backslash: {chr(92)}"

  • You had me at .

以上是SyntaxError:f-string表达式部分不能包含反斜杠的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>