2017-09-25 18 views
1

私はselect文を実行するためのMySQLdb経由のMySQLにアクセスするPythonコードを持っています。私は、配列としてその出力を収集するためにcursor.fetchall()を使用しますが、問題は、それはそうのように、各出力の最後にLを印刷します:印刷結果()

sql = "SELECT data1, data2 FROM table1, table2 ;" 
cursor.execute(sql) 
dataarray = cursor.fetchall() 
print dataarray 

>>> ((75379L, 45708L), ...) 

しかし、私のテーブルには、無L'sの、ただの数字があります。 Lを使わないでデータを取り出して印刷するにはどうすればよいですか?私はむしろそれがNonに私のNone値が変更されるため、文字列に[:-1]を使用しないように思います。

答えて

1

Llong整数型を示しています。 Python 2では、大きすぎて単純な整数として表現できない値に対して自動的に使用されます。

MySQLdbはちょうど常にlong秒を返すように表示されます。

MySQLのINTEGER列は、Python 整数に完全に変換しますが、符号なし整数がオーバーフローする可能性があり、そうこれらの値は代わりにPythonの長整数に を変換されます。

これらの値にstr()を呼び出すと、末尾の'L'が省略されます。

+0

だから私は、これらの値を使用して、私のテーブルを更新する場合、それが正しく更新されますか? 75379Lのように、整数データ型の列にエラーなしで入力されますか? –

+0

はい、 'int'と' long'は互換性があります。ところで、個々の値を印刷すると、末尾に 'L'が表示されません。あなたがコンテナを印刷しているので、あなたはそれを見ています。 –

+0

私はその文書が混乱していることがわかります。 Pythonのintをオーバーフローさせることはできますか?私は何年も前に区別がなくなったと思いましたか? – roganjosh