to_sqlは更新作業が出来ないため、以下のような方法で更新に近い動作をするようなコードを思い付きました。
python
1fruits = ["みかん","りんご", "バナナ"] 2for fruit in fruits: 3 4 try: 5 sql = "DELETE FROM fruitlist WHERE name = fruit" 6 cursor.execute(sql) 7 connector.commit() 8 9 df.to_sql('fruitlist', con=engine, if_exists='append', index=False) 10 print(symbol + "更新完了") 11 12 except: 13 print("更新無し") 14 15cursor.close() 16connector.close()
期待する挙動としては、新たにリスト(fruits)から取得したデータについては一旦DELETEで削除し、新たにデータを追加するというのを期待したのですが
python
1sql = "DELETE FROM fruitlist WHERE name = fruit"
の最後の部分のname = fruitでnameカラムのfor文で回したfruitを削除するという挙動を期待したかったのですが、これだと、結果的に全てのデータが削除されてしまい、尚且つ毎回毎回実行されるので、最後にはバナナのデータしか残らないという結果になってしまいました。
この部分についてfor文で上手く回し、1個ずつデータを削除するにはどうしたら良いでしょうか?
詳しい方アドバイスお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/07/18 12:13 編集