【发布时间】:2016-01-27 09:55:31
【问题描述】:
我有一个 python 代码,它查询 psql 并使用 cursor.fetchall() 返回一批结果。
如果由于数据库中的错误数据而导致强制转换失败,它会引发异常并导致进程失败。
我得到了这个例外:
File "/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", line 377, in fetchall
return [self._build_row() for _ in xrange(size)]
File "/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", line 891, in _build_row
self._casts[i], val, length, self)
File "/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/typecasts.py", line 71, in typecast
return caster.cast(value, cursor, length)
File "/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/typecasts.py", line 39, in cast
return self.caster(value, length, cursor)
File "/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/typecasts.py", line 311, in parse_date
raise DataError("bad datetime: '%s'" % bytes_to_ascii(value))
DataError: bad datetime: '32014-03-03'
有没有办法告诉施法者忽略此错误并将其解析为字符串而不是使整个批次失败?
【问题讨论】:
标签: python python-2.7 psycopg2 psql