言外之意是当我们得到的字符串在还没有绑定给Python变量时,这个时候我们对它进行操作,就不会发生转义。
#!/usr/bin/python# encoding: utf-8
charconvertmap = {
'a': '\a',
'b': '\b',
'f': '\f',
'n': '\n',
'r': '\r',
}
def strconvertor(s):
flag = False
result = []
for c in s:
if not flag and c=="\\":
flag = True
elif flag:
result.append(charconvertmap.get(c, c))
flag = False
else:
result.append(c)
return ''.join(result)
s = strconvertor(r"\btester")
print "%r"%s
#~ >python -u "baidu.py"
#~ '\x08tester'
#~ >Exit code: 0 Time: 0.064
虽然不知道怎么解决你提出的问题,但是感觉你可以不用转义字符啊,举个例子 a = """{'a': "'nihao'"} """ >>>eval(a) {'a': "'nihao'"} 你可以将转义符号用双引号和单引号组合的方式代替