2017-05-08 105 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不遵循非常瞭解標準。 –

相關問題