使用 psycopg2 时可以禁止转换为本机类型吗?

Can one disable conversion to native types when using psycopg2?

psycopg2 将一些 Postgres 数据类型的查询结果转换为本机类型。 pgdb (PostgreSQL) 和 cx_Oracle 似乎都没有这样做。

…所以我尝试将 pgdb 换成 psycopg2cffi 被证明是困难的,因为有相当多的代码需要字符串,我需要继续支持 cx_Oracle .

psycopg2 文档解释了如何为转换注册其他类型,但实际上我想尽可能删除该转换并获取 Postgres 提供的字符串。这可行吗?

您可以为每个 PostgreSQL 类型(或者至少为您希望代码中的字符串的每个类型)重新注册一个纯字符串类型转换程序:当您为一个已经注册的 OID 注册一个类型转换程序时,新的定义优先。只需查看 psycopg 的源代码(C 和 Python)即可找到正确的 OID。

您还可以编译您自己的禁用类型转换的 psycopg 版本。我现在这里没有源代码,但可能只是几行更改。