Why do integers in database row tuple have an #39;L#39; suffix?(为什么数据库行元组中的整数具有“L后缀?)
问题描述
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
这篇关于为什么数据库行元组中的整数具有“L"后缀?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么数据库行元组中的整数具有“L"后缀?


基础教程推荐
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01