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

2024-09-24 22:31:39 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

id(int)  Data(nvarchar)
1        你好
2        你好
3        你好

连接代码:

connecting_string="DRIVER={NetezzaSQL};SERVER=hostname;PORT=5480;DATABASE=databaseName;UID=userNamw;PWD=password"
sqlparams = parse.quote_plus(connecting_string)
engine = create_engine(f"netezza+pyodbc:///?odbc_connect={sqlparams}")

netezzaConnection = engine.connect()

Tags: 代码id数据库stringconnectunicode字符engine
1条回答
网友
1楼 · 发布于 2024-09-24 22:31:39

当NZ炼金术使用pyodbc开发时,这是一个已知的限制。这在NZY炼金术的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())
[('你好',)]

将在pyodbc上工作

相关问题 更多 >