On 10/13/10 11:33, Dennis Lee Bieber wrote:
        While I've not tested it, my understanding of the documentation
indicates that the reader /can/ handle multi-line fields IF QUOTED...
(you may still have to strip the terminator out of the description data
after it has been loaded).

        That is:

Some Title~Subtitle~Episode~"A description with<cr><lf>
an embedded new line terminator"~Date

should be properly parsed.

I believe this was fixed in 2.5 The following worked in 2.5 but 2.4 rejected it:

  # saved as testr.py
  from cStringIO import StringIO
  from csv import DictReader

  data = StringIO(
    'one,"two two",three\n'
    '"1a\r1b","2a\n2b","3a\r\n3b"\n'
    '"1x\r1y","2x\n2y","3x\r\n3y"\n'
    )

  data.reset()
  dr = DictReader(data)
  for row in dr:
    for k,v in row.iteritems():
      print '%r ==> %r' % (k,v)


t...@rubbish:~/tmp$ python2.5 testr.py
'two two' ==> '2a\n2b'
'three' ==> '3a\r\n3b'
'one' ==> '1a\r1b'
'two two' ==> '2x\n2y'
'three' ==> '3x\r\n3y'
'one' ==> '1x\r1y'
t...@rubbish:~/tmp$ python2.4 testr.py
Traceback (most recent call last):
  File "testr.py", line 12, in ?
    for row in dr:
  File "/usr/lib/python2.4/csv.py", line 109, in next
    row = self.reader.next()
_csv.Error: newline inside string



-tkc



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to