sql >> データベース >  >> RDS >> Mysql

Pythonを使用したSQLの複数の挿入

    executemany()を指定する必要があります 行のリスト。名前とメールを別々のリストに分割する必要はありません。両方の値を含む1つのリストを作成するだけです。

    rows = []
    
    for row in range(sheet.nrows):
        """name is in the 0th col. email is the 4th col."""
        name = sheet.cell(row, 0).value  
        email =  sheet.cell(row, 4).value
        rows.append((name, email))
    
    db = MySQLdb.connect(host=host, user=user, db=dbname, passwd=pwd)
    cursor = db.cursor()
    cursor.executemany("""INSERT INTO mailing_list (name,email) VALUES (%s,%s)""", rows)
    

    更新:@JonClementsが言及しているように、executemany()である必要があります execute()ではありません 。



    1. Crontab/Cronを使用してMySQLデータベースを自動的にチェックおよび最適化する

    2. Pythonツイストとデータベース接続

    3. mysqlの一意のインデックス付き列を更新します

    4. INSERT IGNOREがauto_increment主キーをインクリメントするのはなぜですか?