2016-04-03 39 views
1

我有一個VARCHAR字段,偶爾會存儲數字(很少有隨機字符串,只有數字)。當我SELECT字段MySQLdb將該行的該字段轉換爲整數時,有時會產生溢出。強制MySQLdb將所有MySQL數據視爲字符串

我知道MySQLdb.connect()接受了一個名爲conv的參數,它覆蓋了默認的MySQL字符串result - > Python數據類型轉換。但是,我不知道如何覆蓋它以將所有MySQL數據作爲字符串返回。

如何覆蓋MySQLdb.connect()的參數conv以將MySQL中的所有數據作爲Python字符串返回?有其他解決方案嗎?

+0

使用'MySQLdb.converters',它包含Bool2Str,Set2Str .... – haifzhan

回答

2

根據this,conv是字段類型(MySQLdb.constants.FIELD_TYPE)和Python數據類型之間的字典。對於你的榜樣,你可以有:

from MySQLdb.constants import FIELD_TYPE 
conv = { FIELD_TYPE.VARCHAR: str } 

或更一般(但更多的是黑客攻擊的位):

from collections import defaultdict #if on Python 3 
conv = defaultdict(lambda: str) 

要強制所有數據類型轉換爲str

相關問題