> I can catch the exception, but don't see any way to tell which row caused the 
> problem.  Is this information obtainable, short of retrying each row one by 
> one?
One way to debug this is to wrap the iterable passed to executemany with one 
that remembers the last line. Something like:

    class LastIterator(object):
        def __init__(self, coll):
            self.it = iter(coll)
            self.last = None

        def __iter__(self):
            return self

        def next(self):
            self.last = next(self.it)
            return self.last

      ...
      li = ListIterator(items)
      try:
           cursor.executemany(sql, li)
      except SQLError, e:
           print('Error: {}, row was {}'.format(e, li.last))
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to