0

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

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

4

1 回答 1

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 作为浮点数返回,您将覆盖_DECIMAL_to_python和/或__NEWDECIMAL_to_python方法。什么时候用,不知道。

于 2015-12-11T22:31:31.907 回答