我有一个VARCHAR
字段,它偶尔存储数字(只有数字的随机字符串,很少使用)。当我SELECT
该字段时,MySQLdb
将该行上的该字段转换为整数,有时会产生溢出。
我知道MySQLdb.connect()
接受一个名为conv
的参数,该参数将覆盖默认的MySQL字符串结果-> Python数据类型转换。但是,我不知道如何重写它以字符串形式返回所有MySQL数据。
如何覆盖conv
的MySQLdb.connect()
参数以将MySQL的所有数据作为Python字符串返回?有其他解决方案吗?
最佳答案
根据this,conv
是字段类型(MySQLdb.constants.FIELD_TYPE
)和Python数据类型之间的字典。例如,您可能有:
from MySQLdb.constants import FIELD_TYPE
conv = { FIELD_TYPE.VARCHAR: str }
或更笼统的(虽然有点hack):
from collections import defaultdict #if on Python 3
conv = defaultdict(lambda: str)
强制将所有数据类型转换为
str
。