GBase 8s
适配迁移
问答

pyodbc 通过cursor.description获取列名显示不全,这个有碰到过的吗?

发表于2025-11-20 16:41:25125次浏览18个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:

【操作系统】:

【CPU】:

【问题描述】*:

表结构:create table tpyodbc(id serial, username varchar(60), usersex char(30), 描述 char(30));

连接信息:DRIVER=/home/gbase8s/lib/cli/iclis09b.so;SERVER=127.0.0.1,9088;DATABASE=test;UID=gbasedbt;PWD=Gbase@123;SERVERNAME=gbase01;CLIENT_LOCALE=zh_CN.utf8;DB_LOCALE=zh_CN.utf8;

 

执行查询:select * from tpyodbc;

 

打印cursor.description:

cursor.description: 
(('i\x00', <class 'int'>, None, 10, 10, 0, False), ('u\x00s\x00e\x00r\x00', <class 'str'>, None, 60, 60, 0, True), ('u\x00s\x00e\x00r', <class 'str'>, None, 30, 30, 0, True), ('描\x00', <class 'str'>, None, 30, 30, 0, True))

column from cursor.description is:
colume1: i (type: <class 'int'>)
colume2: user (type: <class 'str'>)
colume3: user (type: <class 'str'>)
colume4: 描 (type: <class 'str'>)
 

 

这个列名只显示一半,有碰到过的大佬求解

 

 

评论

登录后才可以发表评论
飞影发表于 8个月前
测试过java, golang, c++都没这个问题,python pyodbc这个坑
GBase用户21143发表于 8个月前
@飞影:应该是这么回事
用户头像
liaosnet发表于 8个月前
你这看着所有字段都有显示问题呀。
用户头像
GBase用户28017发表于 8个月前
是不是有驾车换行了。
用户头像
liaosnet发表于 8个月前
我这看起来没问题,参考:
飞影发表于 8个月前
@liaosnet:python版本,及系统上的libodbc版本是?
用户头像
琳大大发表于 8个月前
pyodbc比较旧,建议使用新版python驱动,简单易上手。
飞影发表于 8个月前
@琳大大:项目python3.5 3.7 3.8 3.9 都有用到,3.5只能用pyodbc。。。要是没要求肯定直接都用3.10了
用户头像
琳大大发表于 8个月前
@飞影:3.5我们这边安排一下,等弄好了传上去~
飞影发表于 8个月前
@琳大大:好的,感谢,有版本告知一下!
用户头像
GBase用户28017发表于 8个月前
学习。
飞影发表于 8个月前
centos7.6 + python3.5 + libodbc.so.2.0.0 能用pyodbc==4.0.3; 更高版本不行,x86,arm已测试
centos7.6 + python2.7 + libodbc.so.2.0.0 能用pyodbc==3.1.1;
飞影发表于 8个月前
采坑记录: python3.5 + pyodbc4.0.3 + libodbc.so.2.0.0 这个配置可以。。。centos7.6和openEuler20.03 (x86,arm)测试可以。python3.5默认会装4.0.32这个版本不行,>4.0.3就不行了。。。
python2.7 + pyodbc3.1.1 + libodbc.so.2.0.0
用户头像
liaosnet发表于 8个月前
@飞影:都到pyodbc4.了,就用pyodbc4.0的高版本吧。
飞影发表于 8个月前
@liaosnet:4.0.5就不行了。看3.5能不能提供下gbase8sdb这个吧。pyodbc这个难受。。。。
崔哥发表于 4个月前
恻恻轻寒翦翦风,小梅飘雪杏花红。夜深斜搭秋千索,楼阁朦胧烟雨中。
用户头像
levvel发表于 3个月前
虚心向前辈学习
爱笑的眼睛发表于 2个月前
学习中,还不清楚。