我想循环遍历列表以打印出存储在StringIO缓冲区中的内容。不幸的是,我遇到了一个我似乎无法解决的Unicode问题。
这是我的错误: ' ASCII'编解码器不能对字符u' \ xa0'进行编码。位置65:序数不在范围内(128)
这是我的代码:
gcloud.watch({ "topicName":
"projects/pipedrivesekoul/topics/my-new-topic", "labelIds": [
"INBOX" ] })
我已经尝试了几件事但是仍然遇到同样的错误,这是我尝试过的:
import CStringIO
def get_string(self, dir=None):
"""
Get all items as tab-delimited string
"""
ns_sections = self.get_data(dir)
out = cStringIO.StringIO()
try:
for title, data in ns_sections:
out.write('#\n# %s\n#\n' % title)
for row in data:
out.write('\t'.join([str(item) for item in row]))
out.write('\n')
except Exception as e:
print (e)
print "HERE"
contents = out.getvalue()
out.close()
return contents
以下是问题专栏:
out.write('\t'.join([str(item).strip() for item in row]))
out.write('\t'.join([str(item)replace(u'\xa0', u' ') for item in row]))
out.write('\t'.join([str(item).replace('\xa0', ' ') for item in row]))
out.write('\t'.join([str(item).replace('\\xa0', ' ') for item in row]))
out.write('\t'.join([str(item).encode('utf-8').strip() for item in row]))
out.write('\t'.join([str(item).decode('ascii', 'ignore') for item in row]))
答案 0 :(得分:0)
以下是我解决问题的方法。我没有运气,因为我还在使用“str”方法,不正确。
我用“unicode”替换“str”如下:
out.write('\t'.join([unicode(item).encode('utf-8').strip() for item in row]))