How can I use quotes without escaping them using CSV?
sjmachin at lexicon.net
Thu Apr 10 01:07:54 CEST 2008
On Apr 10, 7:39 am, "Reedick, Andrew" <jr9... at ATT.COM> wrote:
> > -----Original Message-----
> > From: python-list-bounces+jr9445=att.... at python.org [mailto:python-
> > list-bounces+jr9445=att.... at python.org] On Behalf Of jeffself
> > Sent: Wednesday, April 09, 2008 5:11 PM
> > To: python-l... at python.org
> > Subject: How can I use quotes without escaping them using CSV?
> > If I put an escape character in, it works. For example, if I use ~ as
> > my escape character, my output looks like this:
> > 0001[tab]Michael L. ~"Mick~" Jones[tab]189
> > I don't want that. If I don't include an escape character, it doesn't
> > work.
which means an exception is raised:
_csv.Error: need to escape, but no escapechar set
> > Here's my code:
> > writer = csv.writer(f, delimiter='\t', quoting=csv.QUOTE_NONE)
> The documentation is pretty, uhm, obtuse, but you also need to set
Uhm, "obtuse" applies to angles and people :-) I could agree with
> import sys
> import csv
> names = ['Michael L. "Mick" Jones', 'Vickie A. Meyers', 'John "Jack"
> writer = csv.writer(sys.stdout, delimiter='\t', quotechar='',
> for i in names:
> writer.writerow(['a', i, 'b'])
> a Michael L. "Mick" Jones b
> a Vickie A. Meyers b
> a John "Jack" Smith b
Here's my call:
(1) Code bug: when quoting is set to QUOTE_NONE, it should ignore the
setting of quotechar -- it's irrelevant.
(2) Documentation bug:
A one-character string ....
but the code allows setting quotechar to '' and to None. Both work
around the OP's problem; whether they have identical effect in other
situations, I haven't explored.
More information about the Python-list