我使用tweepy在python中提取推文。
它以unicode类型提供整个数据。
例如:打印类型(数据)给我<type 'unicode'>
它包含unicode字符。
例如:hello\u2026 im am fine\u2019s
我想删除所有这些unicode字符。我可以使用任何正则表达式吗?
str.replace
不是一个可行的选项,因为unicode字符可以是任何值,从表情符号到unicode撇号。
答案 0 :(得分:1)
In [10]: from unicodedata import normalize
In [11]: out_text = normalize('NFKD', input_text).encode('ascii','ignore')
试试这个。
修改强>
实际上规范化返回Unicode字符串unistr的普通表单形式。表单的有效值为“NFC”,“NFKC”,“NFD”和“NFKD”。如果您对NFKD有更多了解,请转到link
In [12]: u = unichr(40960) + u'abcd' + unichr(1972)
In [13]: u.encode('utf-8')
Out[13]: '\xea\x80\x80abcd\xde\xb4'
In [14]: u
Out[14]: u'\ua000abcd\u07b4'
In [16]: u.encode('ascii', 'ignore')
Out[16]: 'abcd'
从上面的代码中,您将获得encode('ascii','ignore')
所做的事情。
参考:https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize