HTMLParser находится в стандартной библиотеке:
import HTMLParser
text='“ ” ·'
parser=HTMLParser.HTMLParser()
desc=parser.unescape(text)
print(desc)
# “ ” ·
Если вы хотите это в одном выражении, вы, конечно, можете сделать
desc=HTMLParser.HTMLParser().unescape(text)
, но этоможет не быть преимуществом, если вам нужно вызывать unescape
в более чем одном месте, и, как правило, цепочка вызовов, таких как это, затрудняет идентификацию, где происходят исключения.
Обратите внимание, что HTMLParser.unescape
исчезнет1013 * все HTML-объекты, определенные в htmlentitydefs.names2codepoint
(плюс '
).
Редактировать: HTMLParser.unescape возвращает символы, отличные от того, что вы опубликовали.Чтобы получить именно эти символы, вы можете использовать xml.sax.saxutils :
text='“ ” ·'
import xml.sax.saxutils as saxutils
print(saxutils.unescape(text,{'“':'"', '”':'"', '·':'.', }))
# " " .
Обратите внимание, что saxutils.unescape
также заменяет <
, >
и &
.Если вы хотите заменить только “
, ”
и ·
, я бы использовал aix's answer .