得到??将 Netezza 与 Python 连接时作为 unicode 字符的输出

Nid*_*hi 2 python sqlalchemy pyodbc netezza python-unicode

我正在尝试从 Netezza 数据库访问 python 代码中的 unicode(中文、日语等)字符。对于连接,我使用了 Netezza odbc 驱动程序和 sqlalechmy,以及 netezza 中的一个表,其中有一个 nvarchar 类型的列,其中包含中文字符。使用 python 代码访问该汉字时,输出为 ?? 而不是实际数据。

表有两列,一列是数据类型 id,另一列是数据类型 nvarchar:

id(int)  Data(nvarchar)
1        ??
2        ??
3        ??
Run Code Online (Sandbox Code Playgroud)

连接代码:

id(int)  Data(nvarchar)
1        ??
2        ??
3        ??
Run Code Online (Sandbox Code Playgroud)

小智 5

这是使用 pyodbc 开发 nzalchemy 时的一个已知限制。这对 nzalchemy 的 nzpy 方言工作正常。

>>> import sqlalchemy
>>> import nzalchemy
>>> engine = sqlalchemy.create_engine("netezza+nzpy://admin:password@localhost:5480/DB1")
>>> conn = engine.connect()
>>> res = conn.execute("select * from t7")
>>> print(res.fetchall())
[('??',)]
Run Code Online (Sandbox Code Playgroud)

将在 pyodbc 上工作。