Así que he estado tratando de deshacerme de caracteres HTML especiales y usé html.unescape para eso. El problema es que si hay 2 caracteres especiales en una fila las funciones realmente no funcionan como hubiera querido
He intentado varias llamadas de función como html.unescape(html.unescape(text)), pero seguramente esa es una idea terrible
str='Anchor says Buckingham Palace pressure killed ABC's story on Epstein'
print(html.unescape(str))
Así que en lugar de conseguir todos los caracteres reemplazados, la salida es:
Anchor says Buckingham Palace pressure killed ABC's story on Epstein
¿Hay alguna manera de lidiar con este tipo de problema?
1 respuesta
Los comentarios son correctos cuando dicen que por lo general hay algo mal con nuestros datos cuando se escapa a múltiples niveles de profundidad. Sin embargo, si queremos aceptar este problema tal como es, y todavía tenemos que resolverlo, así que si recibimos una cadena que se escapa potencialmente varias veces, y no sabemos con qué frecuencia se escapa, podríamos simplemente escapar de él , es decir, hasta que ya no cambie.
Podríamos hacer esto con un while
-loop de la siguiente manera:
import html
def ultimately_unescape(s: str) -> str:
unescaped = ""
while unescaped != s:
s = html.unescape(s)
unescaped = html.unescape(s)
return s
que nos da:
>>> ultimately_unescape("Anchor says Buckingham Palace pressure killed ABC's story on Epstein"))
"Anchor says Buckingham Palace pressure killed ABC's story on Epstein"
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.