我的问题是,为什么MySQL行的整数值带有“ L”后缀?详细信息如下:
以下字典-为便于显示,在此处经过人工格式化-
{'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'}
由MySQL数据库表的各列组成,这些列的压缩结果为从表中读取一次。
我可以通过将这些值传递给int()来删除“ L”,因此,如果该字典位于名为snapped_read的变量中,则可以执行以下操作:
int(snapped_read['reading'])并3018L会改变3018。
int(snapped_read['reading'])
3018L
3018
我只是好奇为什么整数会以这种方式出现。
因为在Python 3之前的Python版本中,长整数文字用l或L后缀表示。在Python 3中,ints和longs已合并为just int,其功能与以前非常相似long。
l
L
int
long
请注意,从技术上讲,Python(2)int等同于C long,而Python long则更像是BigNumber-类型的东西,具有无限的精度(现在Python 3的int类型就是这种情况)。
BigNumber
http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long- complex