我知道如何在使用mysql-connector时创建从python类型到mysql类型的转换器(参见https://stackoverflow.com/a/19502805/1518546)。
但是,如何覆盖从mysql到python的默认转换。例如,如果我希望mysql中的Decimal类型只是一个float而不是python Decimal类型?
答案 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
方法。当使用哪一个时,我不知道。