UnicodeEncodeError:'ascii'编解码器无法对位置126中的字符u'\ u2019'进行编码:序数不在范围内(128)

时间:2011-12-19 16:55:11

标签: python xml csv encode

好的,我已经阅读了很多类似的问题,我相信我正确地遵循了这些建议,但不知怎的,我的代码仍无效。

我已经解析了一个xml文件。我在这里读到输出现在是unicode。我正在使用csv编写器将输出写入文件。

所以,在我的代码中,我尝试在使用writerow之前使用utf-8进行编码。为什么我仍然在写作上得到错误?我的警告,“unicode !!!”在这个错误发生之前不会被抛出(我在多个文件上运行它,它适用于大多数文件)。实际上,我不明白为什么作家试图使用ascii,难道不应该期待utf-8吗?我已经在编码函数中用ascii替换了utf-8只是为了踢。结果相同。请帮忙!!!

        try:

           mystring=elem.find('./'+r2+'Description').text


           if isinstance(mystring, unicode):
               print("unicode!!!")
               mystring.encode('utf-8','ignore')
               datalist.append(mystring)
           else:    
               datalist.append(mystring)
        except AttributeError:
           datalist.append('No text')  

        c.writerow(datalist)

1 个答案:

答案 0 :(得分:9)

当您致电mystring.encode(...时,它不会就地更改字符串;它返回一个新字符串。