Python中使用strip('\n')无法移除字符串换行符的问题
问题分析与解决:移除字符串换行符无效
你踩了两个关键坑:
strip()只处理首尾字符strip('\n')仅会移除字符串开头和结尾的换行符,对你字符串中间的那些换行完全不起作用——这就是换行仍存在的核心原因。未接收字符串方法的返回值
Python中的字符串是不可变对象,strip()、replace()这类方法都会返回一个新的字符串,你只调用了方法但没把结果重新赋值给jsonata_expr,原变量根本没发生变化。
正确的处理方式:
如果要移除所有换行符,直接用replace()方法:
jsonata_expr = r'''{ "ips": *.*.ip_addr, "vlans": $join(vlans.($string(vlan_id)), ","), "date": $now() }''' # 替换所有换行符为空字符串,同时重新赋值给变量 jsonata_expr = jsonata_expr.replace('\n', '') print(jsonata_expr)
执行后输出:
{"ips": *.*.ip_addr, "vlans": $join(vlans.($string(vlan_id)), ","), "date": $now()}
如果想同时去掉多余的缩进空格,让结果更紧凑,可以用正则表达式:
import re jsonata_expr = re.sub(r'\s+', ' ', jsonata_expr).strip() print(jsonata_expr)
执行后输出:
{"ips": *.*.ip_addr, "vlans": $join(vlans.($string(vlan_id)), ","), "date": $now()}
内容的提问来源于stack exchange,提问作者felix001
相关产品推荐
相关产品推荐

