Posts

Showing posts from April, 2012

UnicodeEncodeError in csv writer in Python

Today I was writing a program that generates a csv file after some processing. But I got the following error while trying on some test data: writer.writerow(csv_li) UnicodeEncodeError: 'ascii' codec can't encode character u'\xbf' in position 5: ordinal not in range(128) I looked into the documentation of csv module in Python and found a class named UnicodeWriter. So I changed my code to writer = UnicodeWriter(open("filename.csv", "wb")) Then I tried to run it again. It got rid of the previous UnicodeEncodeError but got into another error. self.writer.writerow([s.encode("utf-8") for s in row]) AttributeError: 'int' object has no attribute 'encode' So, before writing the list, I had to change every value to string. row = [str(item) for item in row] I think this line can be added in the writerow function of UnicodeWriter class.