我编写了一些代码,将查询发送到谷歌并返回查询结果。显然,检索到的内容是 unicode 格式,所以当我将它们放在一个列表中并打印这个列表(整个列表在一起而不是逐个成员)时,一个烦人的额外“u”总是在所有成员后面这个列表..我怎样才能摆脱它们?我试图将整个文本转换为 ascii,但是因为文本中有一些非 ascii 字符(不同的语言)它失败了,现在你知道我应该怎么做才能获得更好的输出吗?我希望这个额外的“你”不会造成任何麻烦。谢谢
2 回答
5
代替:
>>> print your_list
[u'foo', u'bar']
采用:
>>> print '\n'.join(your_list)
foo
bar
如果您希望将其全部放在一行上,则可以使用', '
而不是作为分隔符。'\n'
如果您尝试在 Windows 控制台中显示 Unicode 字符,也可能会遇到问题。如果是这样,您可以使用例如可以显示 Unicode 字符的IDLE 。或者,您可以转换为 ASCII 并忽略 ASCII 中不存在的字符:
print '\n'.join(x.encode('ascii', 'ignore') for x in your_list)
于 2010-10-22T08:09:10.777 回答
1
如果你要对输出做任何有意义的事情,你必须决定你想要的输出编码。扔掉所有那些非 ASCII 字符甚至不是第二好的解决方案。决定一个适当的输出编码(例如,shell 输出你的 shell 编码,web 输出你的 web 编码,最好的多面手是 UTF-8)并适当地编码:(', '.join(x.encode('utf-a') for x in your_list)
En- /Decoding)
于 2010-10-22T08:45:54.900 回答