我有这个api调用。
payload = "{\\"weight\\":{\\"value\\":\\"85.00\\",\\"unit\":\\"kg\\"},\\"height\\":{\\"value\\":\\"170.00\\",\\"unit\\":\\"cm\\"},\\"sex\\":\\"m\\",\\"age\\":\\"24\\",\\"waist\\":\\"34.00\\",\\"hip\\":\\"40.00\\"}"
Run Code Online (Sandbox Code Playgroud)
我想使用 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}"
Run Code Online (Sandbox Code Playgroud)
但这可能不是让您的代码对其他人可读的最佳方式。
选项 3
如果您绝对确定您永远不会使用特定字符,您也可以将该字符作为占位符放入,例如
my_string = f"foo{bar}".replace("", "\\")
Run Code Online (Sandbox Code Playgroud)
但这也是超级解决方法。如果您收到包含该字符的输入,那么这是一种在未来引入错误的好方法。
选项 4
正如对此答案的评论中所述,另一种选择是chr(92)在一些卷曲中进行,如下所示:
my_string = f"This is a backslash: {chr(92)}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3752 次 |
| 最近记录: |