我有一个VARCHAR
字段偶尔存储数字(随机字符串只有数字,很少)。当我SELECT
字段时,MySQLdb
将该行上的该字段转换为整数,有时会产生溢出。
我知道MySQLdb.connect()
使用一个名为conv
的参数来覆盖默认的MySQL字符串结果 - > Python数据类型转换。但是,我不知道如何覆盖它以将所有MySQL数据作为字符串返回。
如何覆盖conv
的{{1}}参数以将所有数据作为Python字符串从MySQL返回?有没有其他解决方案?
答案 0 :(得分: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
。