2017-03-24 7 views
0

私はこの質問を頼まれましたが、私は私の問題に答えを見つけることができません知っているはTypeError:私のSQLクエリスクリプトの「FloatオブジェクトのIterableない」

私はと呼ばれるデータ型floatのリストを持っているfiveMin

すべて

[10.0, 13.0, ....... 34.0, 22.0] 

約72の要素は、私は、MySQLのテーブルの列にそれらをロードする

for item in fiveMin: 
    cursor.executemany('INSERT INTO abc (five) VALUES (?,?,?)', item) 

私の接続は動作しますが、スクリプトは、私は

TypeError: 'Float object not Iterable'

+1

ドキュメントを確認してください。 https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html - これは、個々の値ではない反復可能性を期待しています。プレースホルダも '? 'ではありません – pvg

+1

リストの値を列にロードする答えは、@ http://stackoverflow.com/questions/16225128/insert-a-python-list-into-a-column-in-mysql –

答えて

0

を取得するクエリを実行したときので、最後にexecutemany() expects an iterable argumentはなく離散要素、それは可能性があります。試してみてください:

cursor.executemany('INSERT INTO abc (five) VALUES (%f,%f,%f)', 
        [(item, item, item) for item in fiveMin]) 

、あなたは、各項目を3回挿入します(ほとんど意味がありませんが、最高のは、私は、コンテキストなしであなたを伝えることができます)あなたは、コールが希望単一の値のみを挿入したい場合は

をパラメーターとして(item,)を使用しているので、離散要素からタプルを作成します。


編集:私はexecutemany方法の正しい使用方法を表示するために私の答えを更新しました。ここでは、リスト内包表記を使用してinsert文が想定する引数を作成し、insert文を更新してfloat形式のパラメータを使用するようにしました。

+0

kuddosを@pvgにすると、私はマニュアルページ – zmo

+0

の答えに感謝します。文脈を与えるために、私はそれを試してみます。私は大規模なデータウェアハウスから何か起こっている特定の有用なデータを引き出しています。それは私のエンドユーザに提示することができます私は自分のデータベースにデータを追加しています。だから、私は72の要素のデータをプルすると、リストにダンプする関数を実行し、私は入力としてそのリストを使用するSQLクエリ(私もnoobですので助けていません) – pyth0nBen

+0

ありがとうあなたの助けzmo – pyth0nBen

関連する問題