Câu hỏi của tôi là tại sao giá trị số nguyên của hàng MySQL có hậu tố 'L'? Dưới đây là chi tiết:Tại sao các số nguyên trong tuple của cơ sở dữ liệu có hậu tố 'L'?
Từ điển sau - định dạng nhân tạo vào đây để dễ dàng hiển thị -
{'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'}
bao gồm các cột cơ sở dữ liệu bảng của MySQL nén với kết quả của việc đọc một lần từ bảng.
tôi có thể loại bỏ các 'L' bằng cách thông qua các giá trị vào int(), vì vậy nếu từ điển mà là trong một biến có tên snapped_read, tôi có thể làm điều này:
int(snapped_read['reading'])
và 3018L
sẽ thay đổi để 3018
.
Tôi chỉ tò mò là tại sao các số nguyên hiển thị theo cách này.
Lưu ý phụ: MySQLdb chuyển đổi TẤT CẢ các loại số nguyên thành loại dài trên Python 2.x –
Thú vị khi biết. Có vẻ như chỉ 'BIGINT' sẽ yêu cầu điều đó, vì vậy tôi đoán nó là sự nhất quán về mặt giao diện Python. http://dev.mysql.com/doc/refman/5.6/en/integer-types.html – JAB
Vâng, không biết tại sao, nhưng ngay cả cột 'TINYINT' đã được chuyển đổi thành loại dài ... Cần điều tra thêm, nhưng tôi cũng nghĩ rằng đó là do API giao diện cơ sở dữ liệu của Python. –