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, int
s and long
s 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