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 上工作。