我正在尝试用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('"','\\"')
时出现两个转义符,这会导致问题。
老实说,我对此感到困惑。有关如何正确设置此设置的任何提示将不胜感激。
在此先感谢您的帮助。
答案 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('“','\”')
它将“ \”显示为转义符,但如果打印结果字符串,则会看到它只是一个反斜杠。