40

リストのリストがあります[['a','b'],['c','d']]

というテーブルTと 2 つのフィールドF1がありF2ます。F1フィールド リストの最初の項目は に、2 番目の項目は にマッピングされF2ます。

このような for ループを使用するのではなく、単一のコマンドまたは呼び出しで内部リストごとに行を挿入するにはどうすればよいですか?

for i in [['a','b'],['c','d']]:
    c.execute("insert into T (F1,F2) values (%s, %s)", (i[0], i[1]))
4

3 に答える 3

71

MySQLdbユーザーズガイドから:

c.executemany(
      """INSERT INTO breakfast (name, spam, eggs, sausage, price)
      VALUES (%s, %s, %s, %s, %s)""",
      [
      ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
      ("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
      ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
      ] )

だからあなたの場合:

c.executemany("insert into T (F1,F2) values (%s, %s)",
    [('a','b'),('c','d')])
于 2012-12-23T13:07:45.740 に答える