2017-05-08 96 views
0

当我连接到数据库HFSQL检索一组使用pypyodbc模块在Python用下面的代码数据的无效字面INT()基数为10 pypyodbc

import pypyodbc 
connection = pypyodbc.connect("DSN=odbc_name") 
cursor = connection.cursor() 
cursor.execute("select * from cli") 
result = cursor.fetchall() 

我得到“无效字面INT ()与基地10“错误,此问题的来源是某些列的空值,除了修改数据库表中的空数据之外,此问题的任何解决方法。

+1

什么线产生的错误? – JohanL

+0

result = cursor.fetchall()是由于我使用ipython(意思是逐行执行)而产生错误的行,我确信它。 –

+0

不是游标是一个可迭代的,允许您执行类似于“在游标中输入”的内容,然后捕获并通过条目修复错误条目? – JohanL

回答

0

的解决方案是修改位于site-packages目录pypyodbc.py代码, 修改是简单的外观为梅索德dt_cvt并修改如下:

def dt_cvt(x): 
if py_v3: 
    x = x.decode('ascii') 
if x == '': return None 
else: return x 
+0

这是不是一个好主意,猴子修补程序包:如果更新的新版本,你不能升级而不破坏你的旧代码。我很确定有更好的方法! –

+0

我同意你的意见,我会在pypyodbc github上发布一个问题请求,目前我在时间上很紧张,所以我只会破解它以获得我想要的,所有这些都是因为hfsql这个RDBMS不遵循非常了解标准。 –

相关问题