所以我对一些配置文件使用 yaml 并使用 py yaml 来解析它。对于一个领域,我有类似的东西:
host: HOSTNAME\SERVER,5858
但是当它在这里被解析时,我得到的是:
{
"host": "HOSTNAME\\SERVER,5858"
}
带有 2 个反斜杠。我尝试了单引号、双引号等的每种组合。正确解析它的最佳方法是什么?谢谢
len("\\") == 1
. 您看到的是字符串作为 Python 字符串文字的表示形式。反斜杠在 Python 文字中具有特殊含义,例如,"\n"
是单个字符(换行符)。要在字符串中获得文字反斜杠,它应该被转义"\\"
。
你没有得到两个反斜杠。Python 正在显示单个反斜杠,\\
这样您就不会认为您的字符串中实际上有一个\S
字符(它不存在......但例如\n
确实存在,并且 Python 正试图尽可能明确)。这是证据:
>>> data = {"host": "HOSTNAME\\SERVER,5858"}
>>> print(data["host"])
HOSTNAME\SERVER,5858
>>>
有关更多背景信息,请查看repr()
.