我有一个VARCHAR字段,它偶尔存储数字(只有数字的随机字符串,很少使用)。当我SELECT该字段时,MySQLdb将该行上的该字段转换为整数,有时会产生溢出。

我知道MySQLdb.connect()接受一个名为conv的参数,该参数将覆盖默认的MySQL字符串结果-> Python数据类型转换。但是,我不知道如何重写它以字符串形式返回所有MySQL数据。

如何覆盖convMySQLdb.connect()参数以将MySQL的所有数据作为Python字符串返回?有其他解决方案吗?

最佳答案

根据thisconv是字段类型(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

10-07 19:45
查看更多