python字典包含双斜杠

时间:2019-10-23 20:04:56

标签: python dictionary

thisdict = {"brand": "Ford", "model": "\\[vocalized-noise\\]", "year": 1964}
x = thisdict["model"]
print(x)

Output:
\[vocalized-noise\]

Expected Output:
\\[vocalized-noise\\]

5 个答案:

答案 0 :(得分:4)

"\\"是一个字符串文字,用于创建带有 one 反斜杠的字符串。如果要让输出显示两个反斜杠,则首先需要两个反斜杠。

>>> x = "\\"
>>> print(x)
\
>>> x = "\\\\"
>>> print(x)
\\

从左到右,反斜杠转义以下字符:该过程使转义的字符替换为由第一个确定的另一个字符;进行转义的反斜杠也将被删除。一些例子:

  • '\t'->单个制表符( t ab为t
  • '\r'->单个回车符({<1> r 回车符r
  • '\\'->单个反斜杠(\表示反斜杠)

应用于您的dict文字,应该是

thisdict = {"brand": "Ford", "model": "\\\\[vocalized-noise\\\\]", "year": 1964}

答案 1 :(得分:2)

反斜杠是字符串转义字符;为了逃避反斜杠,请将其加倍。因此,当您执行'\\'时,您是在说“第二个反斜杠不会转义结尾的单引号,因为第一个反斜杠使它成为普通的反斜杠(否则第一个反斜杠不属于字符串) “。

如果您希望反斜杠按字面意义进行解释,且不进行转义(除了引号字符本身,这意味着您不能以反斜杠结束字符串),请使用以r为前缀的原始字符串,并且所有反斜杠都将被解释为文字反斜杠:

thisdict = {"brand": "Ford", "model": r"\\[vocalized-noise\\]", "year": 1964}

唯一的选择是将反斜杠加倍,这很快就会变得难看:

thisdict = {"brand": "Ford", "model": "\\\\[vocalized-noise\\\\]", "year": 1964}

答案 2 :(得分:0)

反斜杠字符\用于"escape" other special characters,就像引号一样。它本身可以被转义以向python表示您的意思是\字符,而不是某些特殊的转义序列。如果键入\\,它将显示为\

在将数据插入为\\\\[vocalized-noise\\\\]以使它们正常打印\\时,请转义斜线。

答案 3 :(得分:0)

  • 更简单的方法。使用r''。”
  • \是python中的转义字符。
  • 使用r,您不必在每个\之前手动添加\
>>> s = r'\\[vocalized-noise\\]'
>>> s
'\\\\[vocalized-noise\\\\]'
>>> thisdict = {"brand": "Ford", "model": r"\\[vocalized-noise\\]", "year": 1964}
>>> x = thisdict['model']
>>> print(x)
\\[vocalized-noise\\]
  • r的意思是raw_string。将使用\作为反斜杠,除非它在引号之前,否则将终止文字。

ps:您可以在What exactly do "u" and "r" string flags do, and what are raw string literals?r''上阅读更多内容

答案 4 :(得分:0)

如果您需要以编程方式像这样转义数据,则可以这样做:

df1 = pd.Dataframe([[data] x 7000...], columns=["COUNTY", "TOWN", "VILLAGE", "DATA1", "DATA2"])
df2 = pd.Dataframe([[data] x 220000...], columns=["COUNTY", "TOWN", "VILLAGE", "population"])

Unicode逸出编解码器将转义反斜杠,从原始Unicode逸出编解码器进行解码将保留它们,而对Unicode逸出进行解码。

相关问题