私の質問は、なぜMySQL行の整数値に「L」というサフィックスが付いているのですか?ここでは詳細は以下のとおりです。なぜデータベース行タプルの整数に「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'}
はテーブルから一度読み込んだ結果をzip形式で圧縮MySQLデータベースのテーブルの列で構成されています。
は私が)(int型にこれらの値を渡すことで「L」を削除することができますので、その辞書は、変数の名前snapped_readにあったならば、私はこれを行うことができます:
int(snapped_read['reading'])
と3018L
は3018
に変更します。
なぜ整数がこのように表示されるのか不思議です。
サイドノート:MySQLdbは、Python 2.xのすべての整数型をlong型に変換します。 –
興味深いことに、しかし、 'BIGINT'だけがそれを必要とするように見えるので、私はそれがPythonインターフェースの点で一貫性のためだと推測しています。 http://dev.mysql.com/doc/refman/5.6/en/integer-types.html – JAB
ええ、理由はわかりませんが、「TINYINT」列までも長い型に変換されました...詳細な調査が必要ですが、しかし、私はそれがPythonのデータベースインタフェースAPIのためだとも思っています。 –