Python字符串替换。不添加两个转义符就无法转义Quote?

时间:2018-11-09 18:19:54

标签: python escaping

我正在尝试用Python替换字符串中的"引号。当我使用 myString.replace('"','\"')转义不起作用。当我使用myString.replace('"','\\"')时,会在其中添加两个转义符。我对此感到困惑,因为我只想逃脱。

这是一个示例字符串,我想替换其中的值 发生异常:

myString = """HTTPSConnectionPool(host=\'testvalue\', port=443): Max retries exceeded with url:/hosts?testURL (Caused by SSLError(SSLError(\"bad handshake: Error([(\'SSL routines\', \'tls_process_server_certificate\', \'certificate verify failed\')])\")))'"""

如您所见,字符串中有两个引号。我想在它们前面添加一个转义符。当我使用myString.replace('"','\"')进行尝试时 (其中mystring是字符串)什么都没有发生,但是当我使用myString.replace('"','\\"')时出现两个转义符,这会导致问题。

老实说,我对此感到困惑。有关如何正确设置此设置的任何提示将不胜感激。

在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

检查:

In [1640]: print(myString.replace('"','\\"'))
HTTPSConnectionPool(host='testvalue', port=443): Max retries exceeded with url:/hosts?testURL (Caused by SSLError(SSLError(\"bad handshake: Err
or([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])\")))'

Python在字符串中将反斜杠表示为\\,因为反斜杠是转义字符。

如果打印出来,则会得到一个反斜杠。

答案 1 :(得分:-1)

我认为您需要额外的反斜杠:myString.replace('“','\”')

它将“ \”显示为转义符,但如果打印结果字符串,则会看到它只是一个反斜杠。