Python替换不会将'单引号'替换为'反斜杠单引号'

2024-03-28 23:27:53 发布

您现在位置:Python中文网/ 问答频道 /正文

    dctLineItems = InvFunctions.dctLineItems
    for value in dctLineItems.values():
        iORDER_ID = value[0]
        iITEM_No = value[1]
        iQUANTITY = value[2]
        sTmp = value[3]
        sTmp2 = sTmp.replace("'", "\'", 1)
        #sTmp2 = connPy.escape(sTmp)
        sITEM_Name = sTmp2
        sPART_No = value[4]
        fPRICE = value[5]
        fPRICE = fPRICE.lstrip('$')
        iDOGWOOD = value[6]
        iADVANCED = value[7]

我已经对它进行了广泛的测试,除了我需要它做的以外,它几乎可以做任何事情。当我尝试用“\”替换“'”时,它什么也不起作用。注意注释的第8行康比。逃逸(sTmp),它也不起作用,但这将是一个单独的问题。你知道吗


Tags: noinidforvaluereplacevaluesstmp
2条回答

另一种选择:使用Python的原始字符串:

>>> "'hello'".replace("'", "\'")
>>> "'hello'"
>>>
>>> "'hello'".replace("'", "\\'")
>>> "\\'hello\\'"
>>>
>>> "'hello'".replace("'", r"\'")  # <- Note the starting r
>>> "\\'hello\\'"

我最好的猜测是,反斜杠在Python中被称为转义序列。Python无法将其识别为文本,因此必须将\\改为。这同样适用于单引号(\'

因此,在使用replace函数的地方(我猜是从顶部开始的第5行),请尝试键入以下内容:

sTmp.replace("'", "\\", 1)

相关问题 更多 >