嘗試使用 SQLAlchemy 的 to_sql 方法將 Pandas DataFrame 寫入 MySQL資料庫時,您可能會遇到以下錯誤:類似:
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
此錯誤表示正在執行的 SQL 查詢有差異。有趣的是,它建議嘗試從 SQLite 資料庫而不是 MySQL 中進行選擇。
要修正此問題並使用SQLAlchemy 引擎和mysqlconnector 與MySQL 建立正確的連接,請按照以下步驟操作:
import pandas as pd import mysql.connector from sqlalchemy import create_engine # Create SQLAlchemy engine engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False) # Read and write using the engine connection data = pd.read_sql('SELECT * FROM sample_table', engine) data.to_sql(name='sample_table2', con=engine, if_exists='append', index=False)
此修改確保用於讀取和寫入的連接是連接到MySQL 的SQLAlchemy 引擎。它消除了使用原始連接的初始嘗試,這可能會觸發 SQLite 相關錯誤。
以上是為什麼 Pandas'to_sql 在寫入 MySQL 時會失敗並出現「參數數量錯誤」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!