以 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
当我连接到 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