POST后的Python转义点字符

时间:2015-04-21 05:12:49

标签: python flask

考虑这个字符串

'\.\r\n'

因为它是一个正则表达式,我必须将这个点转移到'。',并在POST请求中我收到" \\。"。结果是

t = '\\.\\r\\n'

Python3 unicode_escape此字符串为

In [20]: t.encode('utf-8').decode('unicode_escape')
Out[20]: '\\.\r\n'

替换字符串没有帮助

In [21]: t.replace('\\\\','\\')
Out[21]: '\\.\\r\\n'

ast.literal_eval也不起作用

In [51]: import ast

In [52]: ast.literal_eval(t)
  File "<unknown>", line 1
    \.\r\n
         ^
SyntaxError: unexpected character after line continuation character

让我们尝试在字符串中添加引号:

In [65]: ast.literal_eval('"'+t+'"')
Out[65]: '\\.\r\n'

eval是邪恶的,但仍然与literal_eval相同 那么,无论如何我还能收到原来的字符串吗?我唯一想到的是使用print

1 个答案:

答案 0 :(得分:1)

如果您打印'\。\ r \ n',您会看到'\\。\ r \ n'。所以我认为你已经拥有了你想要的字符串。

>>> a = '\.\r\n'
>>> a
'\\.\r\n'