2016-04-03 13 views
1

私はVARCHARフィールドに数値を格納することがあります(めったに数字のないランダムな文字列)。フィールドがSELECTの場合、MySQLdbはその行のフィールドを整数に変換し、ときにはオーバーフローが発生します。MySQLデータベースにすべてのMySQLデータを文字列として扱わせる

MySQLdb.connect()は、デフォルトのMySQL文字列result - > Pythonデータ型変換をオーバーライドするconvというパラメータを使用しています。しかし、すべてのMySQLデータを文字列として返す方法を変更する方法はわかりません。

conv引数をMySQLdb.connect()に変更して、MySQLのすべてのデータをPython文字列として返すにはどうすればよいですか?代替ソリューションはありますか?

+0

'MySQLdb.converters'を使用すると、Bool2Str、Set2Str .... – haifzhan

答えて

2

thisによると、convは、フィールドタイプ(MySQLdb.constants.FIELD_TYPE)とPythonデータタイプの間の辞書です。あなたたとえば、あなたが持っている可能性があり:

from MySQLdb.constants import FIELD_TYPE 
conv = { FIELD_TYPE.VARCHAR: str } 

以上、一般的に(ハックのビット以上が):

from collections import defaultdict #if on Python 3 
conv = defaultdict(lambda: str) 

strに変換されるすべてのデータ型を強制するには。

関連する問題