GOTT!!... War das mal wieder ein gewurstel bis ichs rausgefunden habe... Programmierer-frust
Code: Alles auswählen
import MySQLdb.converters
from MySQLdb.constants import FIELD_TYPE
MYSQL_CONV = MySQLdb.converters.conversions.copy()
MYSQL_CONV[FIELD_TYPE.LONG] = int
So werden mysql-ints zu python-ints, es sei denn die mysql-ints sind größer als der python-int. Dann wird der mysql-int zum python-long.
statt MYSQL_CONV[...] = int kann man auch eine eigene funktion nehmen, zB:
Code: Alles auswählen
def int_or_long(number):
try: return int(number)
except ValueError: return long(number)
ist aber überflüssig, denn int(<zugroßezahl>) gibt einen long zurück.
dann beim connecten nur noch:
Code: Alles auswählen
global_db = MySQLdb.connect(
host=Config.GLOBAL_DB_HOST,
db=Config.GLOBAL_DB_NAME,
user=Config.GLOBAL_DB_USER,
passwd=Config.GLOBAL_DB_PASS,
conv=MYSQL_CONV)#<==-
Ich hoffe, ich konnte auch anderen helfen.
Jan