La mia domanda è: perché i valori interi di una riga MySQL hanno un suffisso "L"? Ecco i dettagli:Perché i numeri interi nella tupla di righe del database hanno un suffisso "L"?
Il dizionario seguenti - artificialmente formattati qui per facilità di esposizione -
{'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'}
è costituito da colonne di una tabella di database MySQL zip con il risultato di lettura una volta dal tavolo.
posso rimuovere la 'L' di passare questi valori in int(), quindi se questo dizionario fosse in uno snapped_read variabile denominata, avrei potuto fare questo:
int(snapped_read['reading'])
e 3018L
avrebbe cambiato per 3018
.
Sono solo curioso di sapere perché gli interi si presentano in questo modo.
Nota a margine: MySQLdb converte TUTTI i tipi interi in caratteri lunghi su Python 2.x –
È interessante sapere. Sembra che solo "BIGINT" richiederebbe, comunque, quindi suppongo che sia coerente per quanto riguarda l'interfaccia Python. http://dev.mysql.com/doc/refman/5.6/en/integer-types.html – JAB
Sì, non so perché, ma anche le colonne 'TINYINT' sono state convertite in tipo lungo ... Ha bisogno di ulteriori indagini, ma penso anche che sia dovuto all'API dell'interfaccia database di Python. –