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