首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数据库到实际值的Pyodbc.row对象

从数据库到实际值的Pyodbc.row对象
EN

Stack Overflow用户
提问于 2020-07-23 13:20:10
回答 1查看 348关注 0票数 0

我试图使用pyobdc从IBM Series服务器(以前是AS400)中提取数据。我正在使用OBDC数据源管理员和iSeries Access ODBC驱动程序。以下是代码:

代码语言:javascript
运行
复制
import pyodbc
conn = pyodbc.connect('DRIVER={iSeries Access ODBC Driver};system=SERVER;UID=USER;PWD=PASS;unicode_results=True')
conn.setencoding('utf-8')
c1=conn.cursor()
c1.execute("""select TEST from TESTER.ITEMTEST where TEST='005911'""")
<pyodbc.Cursor object at 0x02A1F460>
rows = c1.fetchall()
print(rows[0])

这是返回的内容:

(B‘\xf0\xf5\xf9\xf1\xf0 1@)

据我所读,这是一个pyodbc.Row对象。我到处搜索互联网,找不到任何解决问题的方法。

我们内部的一位系统开发人员说,也许OBDC管理员中有某种设置是我需要更改的,但是所有的设置似乎都是正确的。

下面是OBDC管理员的一些截图,以及我如何设置驱动程序:

屏幕

是否有方法将pyodbc.Row对象转换为数据库中包含的实际值?或者我还遗漏了什么?

我试过:

代码语言:javascript
运行
复制
rows[0].TEST

它仍然返回一个pyodbc.Row对象。我要做的就是返回从服务器中检索到的实际值,而不是pyodbc.Row对象。

当我使用:

代码语言:javascript
运行
复制
c1.description

我得到:

代码语言:javascript
运行
复制
(('TEST', <class 'bytearray'>, None, 15, 15, 0, False),)

我应该得到的实际价值是: 005911

EN

回答 1

Stack Overflow用户

发布于 2020-07-23 19:49:49

我换了连接线,它修好了所有的东西。我要补充的是: TRANSLATE=1

代码语言:javascript
运行
复制
conn = pyodbc.connect('DRIVER={iSeries Access ODBC Driver};system=SERVER;TRANSLATE=1;UID=USER;PWD=PASS')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63055290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档