因此,我一直在尝试摆脱特殊的HTML字符,并为此使用了html.unescape。问题是,如果连续有两个特殊字符,这些功能将无法按我想要的方式正常工作
我尝试了html.unescape(html.unescape(text))之类的多个函数调用,但这肯定是个糟糕的主意
str='Anchor says Buckingham Palace pressure killed ABC's story on Epstein'
print(html.unescape(str))
因此,不是替换所有字符,而是输出:
Anchor says Buckingham Palace pressure killed ABC's story on Epstein
有没有办法解决这种问题?
答案 0 :(得分:0)
当他们说我们的数据在多个级别进行深度转义时,通常会出现问题,这是对的。但是,如果我们想按原样接受此问题,并且仍然需要解决它,那么如果我们收到一个可能多次转义的字符串,并且我们不知道它转义的频率,我们可以取消转义直到它不再变化为止。
我们可以使用while
循环执行此操作,如下所示:
import html
def ultimately_unescape(s: str) -> str:
unescaped = ""
while unescaped != s:
s = html.unescape(s)
unescaped = html.unescape(s)
return s
这给了我们
>>> ultimately_unescape("Anchor says Buckingham Palace pressure killed ABC's story on Epstein"))
"Anchor says Buckingham Palace pressure killed ABC's story on Epstein"