首頁 >資料庫 >mysql教程 >為什麼 Pandas'to_sql 在寫入 MySQL 時會失敗並出現「參數數量錯誤」錯誤?

為什麼 Pandas'to_sql 在寫入 MySQL 時會失敗並出現「參數數量錯誤」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-27 15:20:11583瀏覽

Why Does Pandas' to_sql Fail with a

使用 SQLAlchemy 的 to_sql 對 Pandas 寫入 MySQL 資料庫進行故障排除

嘗試使用 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 建立正確的連接,請按照以下步驟操作:

  • 直接利用引擎物件作為連接參數to_sql:
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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn