如何使用msqyl-connector从mysql转换为python类型

时间:2015-12-11 22:31:32

标签: mysql python-3.x mysql-connector-python

我知道如何在使用mysql-connector时创建从python类型到mysql类型的转换器(参见https://stackoverflow.com/a/19502805/1518546)。

但是,如何覆盖从mysql到python的默认转换。例如,如果我希望mysql中的Decimal类型只是一个float而不是python Decimal类型?

1 个答案:

答案 0 :(得分:0)

通过查看代码,要覆盖的函数的模式是:_TYPE_to_python。不直观的是类型名称。您可能会发现如下:

import mysql.connector
for item in mysql.connector.constants.FieldType.desc:
     print(item)

产生类似的东西:

NULL
DATETIME
DATE
LONG
GEOMETRY
LONGLONG
TINY
NEWDECIMAL
BIT
MEDIUM_BLOB
SET
YEAR
LONG_BLOB
VARCHAR
VAR_STRING
TINY_BLOB
FLOAT
TIMESTAMP
NEWDATE
DOUBLE
INT24
SHORT
DECIMAL
TIME
BLOB
STRING
ENUM

因此,要将Decimal作为float返回,您将覆盖_DECIMAL_to_python和/或__NEWDECIMAL_to_python方法。当使用哪一个时,我不知道。