Python:从字符串中删除\ xa0?

我目前正在使用Beautiful Soup解析HTML文件并调用get_text(),但似乎我剩下很多\ xa0 Unicode表示空格。有没有一种有效的方法可以在Python 2.7中将其全部删除,并将其更改为空格?我想更笼统的问题是,有没有办法删除Unicode格式?

我尝试使用:line = line.replace(u'\xa0',' '),如另一个线程所建议的那样,但是将\ xa0更改为u,所以现在到处都是“ u”。):

编辑:问题似乎已由解决str.replace(u'\xa0', ' ').encode('utf-8'),但.encode('utf-8')不这样做replace()似乎会导致它吐出甚至更奇怪的字符,例如\ xc2。谁能解释一下?


慕森王
浏览 2983回答 3
3回答

繁星淼淼

Python unicodedata库中有许多有用的东西。功能之一就是.normalize()功能。尝试:new_str = unicodedata.normalize("NFKD", unicode_str)如果您没有得到想要的结果,请使用上面链接中列出的任何其他方法替换NFKD。

Smart猫小萌

我遇到了同样的问题,使用python从sqlite3数据库中提取了一些数据。上面的答案对我不起作用(不确定为什么),但是这样做了:line = line.decode('ascii', 'ignore')但是,我的目标是删除\ xa0s,而不是用空格替换它们。我是从Ned Batchelder的这个超级有用的unicode教程中获得的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python