CSV module and UNICODE

Rudy Schockaert rudy.schockaert at gmail.com
Thu Feb 23 05:53:49 EST 2006


I'm having problems writing unicode to a csv file.
I use the following code:

-------------------------
import codecs
import csv

csvfile = csv.writer(codecs.open('filename.csv','w+','utf-8'))
a = u'\xc9'
csvfile.writerow([a,a])
-------------------------

It fails with the message: UnicodeEncodeError: 'ascii' codec can't encode
.....

Is there any way I can solve this.

<PEP 305>

   1.

   What about Unicode? Is it sufficient to pass a file object gotten from
   codecs.open()? For example:

   csvreader = csv.reader(codecs.open("some.csv", "r", "cp1252"))

   csvwriter = csv.writer(codecs.open("some.csv", "w", "utf-8"))

   In the first example, text would be assumed to be encoded as cp1252.
   Should the system be aggressive in converting to Unicode or should Unicode
   strings only be returned if necessary?

   In the second example, the file will take care of automatically
   encoding Unicode strings as utf-8 before writing to disk.

   Note: As of this writing, the csv module doesn't handle Unicode data.

</PEP 305>

PEP 305 was last modified on Wed, 11 Aug 2004
<http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/nondist/peps/pep-0305.txt>
Has something changed in between?


Thanks in advance,

Rudy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20060223/d7168a55/attachment.html>


More information about the Python-list mailing list