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 .