Python3多重替换

Python3多重替换,python,replace,python-3.4,Python,Replace,Python 3.4,我不明白为什么这会被作为“话题外”而搁置。我请求的是编程帮助,而不是参考(这就是为什么关闭它的解释所说的)。这是我最初的问题: 我有一个Python3脚本,可以用HTML向大约600人的列表发送电子邮件。Sendmail显然不能发送127(十进制)以上的非ascii字符,除非我用MIME跳过了这一关。所以我正在考虑用HTML替换所有重音字符&#。。。;等价物 我宁愿不使用正则表达式,因为我不擅长它们。有没有不使用循环的方法,或者至少没有复杂的循环?谷歌搜索“python编码html实体”,第一个

我不明白为什么这会被作为“话题外”而搁置。我请求的是编程帮助,而不是参考(这就是为什么关闭它的解释所说的)。这是我最初的问题: 我有一个Python3脚本,可以用HTML向大约600人的列表发送电子邮件。Sendmail显然不能发送127(十进制)以上的非ascii字符,除非我用MIME跳过了这一关。所以我正在考虑用HTML替换所有重音字符&#。。。;等价物

我宁愿不使用正则表达式,因为我不擅长它们。有没有不使用循环的方法,或者至少没有复杂的循环?

谷歌搜索“python编码html实体”,第一个结果:

通过ASCII编码的内置HTML/XML转义 将非ASCII字符(如德语字母或带重音符号的字母)转换为HTML等效字符的一种非常简单的方法是将其从unicode编码为ASCII,并使用xmlcharrefreplace编码错误处理:

您可以使用和从包中选择实体:

输出:

a text with ä and ö

str.replace()
替换字符串中的所有替换项;不需要循环。显而易见的是使用替换字典。如果有这样一个字典,一行代码就足以进行替换:
s=''.join(d[c]如果c在d中,否则c代表c在s中)
str.replace()的问题是我必须有大约30行代码。我尝试了上面两行代码的复制和粘贴,但出现了以下错误:codecs.charmap\u encode(input,self.errors,encoding\u map)[0]UnicodeEncodeError:“charmap”编解码器无法对位置0-4中的字符进行编码:字符映射到。也许我需要导入一些东西?等等,这个错误是因为我在文件的顶部有一行关于代码页的内容,这是早期实验留下的。我现在确实得到了上面显示的输出。我将采用这种非常经济的解决方案。
import html

text = "a text with ä and ö"
ent = {k: '&{};'.format(v) for k, v in html.entities.codepoint2name.items()}
print(text.translate(ent))
a text with ä and ö