Mi pregunta es ¿por qué los valores enteros de una fila MySQL tienen un sufijo 'L'? Aquí están los detalles:¿Por qué los enteros en la tupla de fila de la base de datos tienen un sufijo 'L'?
El siguiente diccionario - artificialmente este formato para facilitar la visualización -
{'estimated': '',
'suffix': '',
'typeofread': 'g',
'acct_no': 901001000L,
'counter': 0,
'time_billed': datetime.datetime(2012, 5, 1, 9, 5, 33),
'date_read': datetime.datetime(2012, 3, 13, 23, 19, 45),
'reading': 3018L,
'meter_num': '26174200'}
se compone de columnas de una tabla de base de datos MySQL con cremallera con el resultado de la lectura de una vez de la mesa.
me puede quitar la 'L' que pasa por estos valores en int(), así que si eso fuera diccionario en una variable denominada snapped_read, que podría hacer esto:
int(snapped_read['reading'])
y 3018L
cambiaría a 3018
.
Tengo curiosidad por saber por qué los enteros aparecen de esta manera.
Nota al margen: MySQLdb convierte TODOS los tipos enteros a tipo largo en Python 2.x –
Interesante de conocer. Parece que solo 'BIGINT 'requeriría eso, así que supongo que es por consistencia en términos de la interfaz de Python. http://dev.mysql.com/doc/refman/5.6/en/integer-types.html – JAB
Sí, no sé por qué, pero incluso las columnas 'TINYINT' se convirtieron en tipo largo ... Necesita más investigación, pero también creo que se debe a la API de interfaz de base de datos de Python. –