Python移除字符串多余字符问题:清理后出现rn字符如何解决
问题描述
原字符串定义:
text = """'select \\"ORDER_ID\\",\r\n \\"LINE_ID\\",\r\n \\"PRODUCT_ID\\",\r\n \\"CUSTOMER_ID\\",\r\n \\"PAYMENT_METHOD\\",\r\n \\"STATUS\\",\r\n \\"DATETIME_ORDER_PLACED\\",\r\n \\"DATETIME_ORDER_SHIPPED\\",\r\n \\"ORDER_QTY\\",\r\n \\"ORDER_AMOUNT\\",\r\n \\"ORDER_COST\\",\r\n \\"ORDER_VAT\\",\r\n \\"SHIPPING_COSR\\"\r\nfrom \\"DEMO\\".\\"DEMO\\".\\"ORDERS\\""""
尝试的清理代码:
text = text.replace("\'", '').replace('"', '')
得到的异常结果:
'select ORDER_ID,rn LINE_ID,rn PRODUCT_ID,rn CUSTOMER_ID,rn PAYMENT_METHOD,rn STATUS,rn DATETIME_ORDER_PLACED,rn DATETIME_ORDER_SHIPPED,rn ORDER_QTY,rn ORDER_AMOUNT,rn ORDER_COST,rn ORDER_VAT,rn SHIPPING_COSRrnfrom DEMO.DEMO.ORDERS
执行text = text.strip('\r\n')无效,无法去除中间的rn字符。
解决方法
原因说明
你看到的rn是原字符串中**换行符\r\n**在输出时被显示为字面量字符,strip('\r\n')仅能移除字符串首尾的换行符,无法处理中间的换行内容。
清理代码
可以直接替换掉所有的\r\n及后续的多余空格,同时清理引号:
# 移除单引号和双引号 text = text.replace("'", "").replace('"', '') # 替换换行符+4个空格为单个空格(按需调整,也可保留换行) text = text.replace('\r\n ', ' ').replace('\r\n', ' ') # 去除首尾多余空格 text = text.strip()
执行后得到的干净SQL语句:
select ORDER_ID, LINE_ID, PRODUCT_ID, CUSTOMER_ID, PAYMENT_METHOD, STATUS, DATETIME_ORDER_PLACED, DATETIME_ORDER_SHIPPED, ORDER_QTY, ORDER_AMOUNT, ORDER_COST, ORDER_VAT, SHIPPING_COSR from DEMO.DEMO.ORDERS
如果需要保留换行格式,只需把replace('\r\n ', ' ')换成replace('\r\n ', '\n')即可。
内容的提问来源于stack exchange,提问作者nokia mobile
相关产品推荐
相关产品推荐

