以 10 为基数的 int() pypyodbc 的无效文字

invalid literal for int() with base 10 pypyodbc

当我连接到 HFSQL 数据库以使用 python 中的 pypyodbc 模块检索一组数据时,代码如下

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

我收到 "invalid literal for int() with base 10" 错误,这个问题的根源是某些列的空值,除了修改数据库中的空数据外,任何解决此问题的方法 table.

解决方案是修改位于 site-packages 目录中的 pypyodbc.py 代码, 修改很简单找方法dt_cvt修改如下:

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