我有一个base64编码的字符串
当我以这种方式解码字符串时:
>>> import base64
>>> base64.b64decode("XH13fXM=")
'\\}w}s'
输出正常。
但是当我像这样使用它时:
>>> d = base64.b64decode("XH13fXM=")
>>> print d
\}w}s
缺少某些字符
有人可以提供建议吗?
先谢谢你。
答案 0 :(得分:3)
这只是一个介绍问题:
>>> '\\}w}s'
'\\}w}s'
>>> print(_, len(_))
\}w}s 5
此字符串有5个字符。在代码中使用它时,您需要转义反斜杠,或使用原始字符串文字:
>>> r'\}w}s'
'\\}w}s'
>>> r'\}w}s' == '\\}w}s'
True
答案 1 :(得分:1)
当您print
字符串时,输出字符串中的字符。当交互式shell显示最后一个语句的值时,它会打印字符串的__repr__
,而不是字符串本身。这就是为什么它周围有单引号,你的反斜杠已被转义。
第二个示例中没有丢失任何字符,这些是字符串中的5个字符。第一个示例添加了字符,使输出成为合法的Python字符串文字。
如果要使用print语句并使输出看起来像第一个示例,请使用:
print repr(d)