Python 2:在无法控制列表时处理字符串中的unicode

Python 2:在无法控制列表时处理字符串中的unicode,python,python-2.7,unicode,Python,Python 2.7,Unicode,所以我用的是Twitter搜索库。该功能很简单,可以打印Twitter搜索结果 所以这里有个麻烦。您的tweet通过TwitterSearch从该dict或列表中传递。不管实际的是什么 tweet['text'] 如果您的Python2.7有一个这个python无法解决的unicode,那就砰的一声。程序错误 所以我试着让它像这样 a=unicode(tweet['text'], errors='ignore') print a 目的是我希望将unicode转换为字符串,同时在这个过程中忽略

所以我用的是Twitter搜索库。该功能很简单,可以打印Twitter搜索结果

所以这里有个麻烦。您的tweet通过TwitterSearch从该dict或列表中传递。不管实际的是什么

tweet['text']
如果您的Python2.7有一个这个python无法解决的unicode,那就砰的一声。程序错误

所以我试着让它像这样

a=unicode(tweet['text'], errors='ignore')
print a
目的是我希望将unicode转换为字符串,同时在这个过程中忽略未解析的unicode。这是我从文档中了解到的。我可能无法理解文档,所以请编写此代码

我收到了这个可爱的错误信息

typeError: decoding Unicode is not suported
我的问题

1:为什么?这个Unicode不是默认python库的一部分吗

2:我应该怎么做才能将unicode转换为字符串,同时忽略过程中未解析的unicode


PS:这是我的第一个unicode问题,这是我目前能做的最好的了。不要杀我。

你需要理解Unicode对象和字节字符串之间的区别。在Python 2.7中,unicode类是一个unicode对象。这些字符已经由Unicode标准中定义的字符组成。根据我对您提供的证据的理解,您的tweet['text']已经是一个unicode实例

您可以通过打印typetweet['text']来验证这一点:

有许多编码,单个unicode对象通常可以被编码为许多不同的字节字符串,具体取决于您选择的编码。要选择正确的字符串,需要了解要在其中使用结果字符串的上下文。如果终端理解UTF-8,则所有unicode对象在发送到输出流之前都需要编码为UTF-8。如果它只理解ASCII,那么您可能需要删除一些字符

>>> print u'żółw'.encode('utf-8')
żółw

因此,如果Python的默认输出编码不正确或无法处理您试图打印的所有字符,那么您始终可以手动编码对象并输出结果str。但在此之前,请阅读您的问题下方评论中链接到的所有文档。

tweet['text']已经是一个unicode字符串。您看到了什么unicode错误?您可能正在尝试在不支持特定字符的控制台上打印,或者尝试在没有显式编码的情况下写入文件,或者连接到其他非unicode字符串?因此。我应该怎么做才能将其转换为字符串并删除任何其他未解决的Unicode数据取决于上下文,您没有给我们任何信息。您想在继续之前阅读和,并略带一些。我阅读了Unicode Howto。事实上,我之所以得到unicode的东西是因为那个文档。我可能读了一篇文章,可能把整个事情弄错了。似乎正确的语法是编码而不是unicode。必须是对文件的误解。谢谢你告诉我开悟的方法
>>> u'żółw'.encode('utf-8')
'\xc5\xbc\xc3\xb3\xc5\x82w'
>>> print type(u'żółw'.encode('utf-8'))
<type 'str'>
>>> print u'żółw'.encode('utf-8')
żółw