目前,查询后获得的对象中的每个元素都存储如下:
((1L, Decimal('30'), Decimal('17')), (2L, Decimal('29'), Decimal('16')))
我希望格式为:
(("1","30","17"),("2","29","16"))
这是因为我必须稍后使用zip()
创建一个dict,然后将其作为json传递。
现在我当然可以遍历整个结果,进入每个元素并str()
,然后使用巨大的结果集,这将是一个非常大的开销。
有更快,更简单的方法来实现这一目标吗?
答案 0 :(得分:2)
您需要通过将conv
参数传递给conversions
来覆盖MySQLdb.connect()
映射:
import MySQLdb
from MySQLdb.constants import FIELD_TYPE
conv = MySQLdb.converters.conversions.copy()
conv[FIELD_TYPE.DECIMAL] = conv[FIELD_TYPE.NEWDECIMAL] = str
db = MySQLdb.connect(host='...', user='...', passwd='...', db='...', conv=conv)
现在,所有Decimal
值都将作为字符串返回。
另见相关主题: