强制 MySQLdb 将所有 MySQL 数据视为字符串

force MySQLdb to treat all MySQL data as strings

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

我知道 MySQLdb.connect() 接受一个名为 conv 的参数,它会覆盖默认的 MySQL 字符串结果 --> Python 数据类型转换。但是,我不知道如何将其覆盖为 return 所有 MySQL 数据作为字符串。

如何将 MySQLdb.connect()conv 参数覆盖为 return 来自 MySQL 的所有数据作为 Python 字符串?有没有其他解决方案?

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