0

mysql-connector を使用するときに、python 型から mysql 型へのコンバーターを作成する方法を知っています ( https://stackoverflow.com/a/19502805/1518546を参照)。

ただし、mysql から python へのデフォルトの変換をオーバーライドするにはどうすればよいですか。たとえば、mysql の Decimal 型を Python の Decimal 型ではなく float にしたい場合はどうすればよいですか?

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 を float として返すには、_DECIMAL_to_pythonand/or__NEWDECIMAL_to_pythonメソッドをオーバーライドします。どちらがいつ使われるかわかりません。

于 2015-12-11T22:31:31.907 に答える