gpt4 book ai didi

python - psql 在 cursor.fetchall() 期间转换解析错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:23 24 4
gpt4 key购买 nike

我有一个 python 代码,它查询 psql 并使用 cursor.fetchall() 返回一批结果。如果由于数据库中的数据错误而导致转换失败,它会抛出异常并使过程失败。我得到这个异常(exception):

文件“/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py”,第 377 行,在 fetchall 中
返回 [self._build_row() for _ in xrange(size)]
文件“/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py”,第 891 行,在 _build_row
self._casts[i], val, length, self)
文件“/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/typecasts.py”,第 71 行,类型转换
返回 caster.cast(值、光标、长度)
文件“/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/typecasts.py”,第 39 行,在 cast 中
返回 self.caster(值,长度,光标)
文件“/usr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/typecasts.py”,第 311 行,在 parse_date
引发 DataError(“错误的日期时间:'%s'”% bytes_to_ascii(值))
DataError:错误的日期时间:'32014-03-03'

有没有办法告诉施法者忽略这个错误并将其解析为字符串而不是使整个批处理失败?

最佳答案

您可以“破解”psycopg2cffi 的解析器以将 DATE 对象作为字符串返回:

如果您查看 code您可以看到 DATE 解析器的注册,因此您可以在代码中替换 DATE 的序列化器。

import psycopg2cffi

psycopg2cffi._impl.typecasts._default_type('DATE', [1082],
psycopg2cffi._impl.typecasts.parse_string)

当然,对于每种类型,这都可以做到。

关于python - psql 在 cursor.fetchall() 期间转换解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35033997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com