简体   繁体   English

从字符串python中删除多余字符的问题

[英]Issue in removing extra characters from string python

I have a string given as:我有一个字符串:

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\\""

I am trying to clean this using below code:我正在尝试使用以下代码清理它:

text = text.replace("\\", '').replace('"', '')

I got the following result:我得到以下结果:

'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

I cannot figure out why I am getting rn with every word.我无法弄清楚为什么我每说一个字都会读到 rn How I can get rid of this?我怎样才能摆脱这个? I even tried using text = text.strip('\r\n') but it is not working.我什至尝试使用text = text.strip('\r\n')但它不起作用。

Like this:像这样:

text = query_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\\"'
print(text.replace('\\"', '"').replace('\\r', "\r").replace("\\n", "\n"))

Output:输出:

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"

You get these kinds of strings for example when you call the repr function on a string:例如,当您对字符串调用 repr 函数时,您会得到这些类型的字符串:

print(repr('''new line:
'single quotes',"double quotes"'''))

Output:输出:

'new line:\n\'single quotes\',"double quotes"'

Escaping is commonly used on the web.转义在网络上很常用。

You will have to replace \\r\\n first.您必须先替换\\r\\n You can do that by你可以这样做

text = text.replace("\\r\\n", '').replace("\\", '').replace('"', '')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM