My question is why do a MySQL row's integer values have an 'L' suffix? Here are the details:
The following dictionary -- artificially formatted here for ease of display --
{'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'} is comprised of a MySQL database table's columns zipped with the result of reading once from the table.
I can remove the 'L' by passing these values into int(), so if that dictionary were in a variable named snapped_read, I could do this:
int(snapped_read['reading']) and 3018L would change to 3018.
I'm just curious as to why integers show up this way.
Because in versions of Python before Python 3, long integer literals were indicated with an l or L suffix. In Python 3, ints and longs have been merged into just int, which functions pretty much like long used to.
Do note that, technically, Python( 2)'s int was equivalent to C's long, while Python's long was more like a BigNumber-type thing with unlimited precision (which is now the case for Python 3's int type.)
http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With