2

我编写了一些代码,将查询发送到谷歌并返回查询结果。显然,检索到的内容是 unicode 格式,所以当我将它们放在一个列表中并打印这个列表(整个列表在一起而不是逐个成员)时,一个烦人的额外“u”总是在所有成员后面这个列表..我怎样才能摆脱它们?我试图将整个文本转换为 ascii,但是因为文本中有一些非 ascii 字符(不同的语言)它失败了,现在你知道我应该怎么做才能获得更好的输出吗?我希望这个额外的“你”不会造成任何麻烦。谢谢

4

2 回答 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 回答