SQLAlchemy の to_sql メソッドを使用して Pandas データフレームを MySQL データベースに書き込もうとすると、次のようなエラーが発生する場合があります。次のようなもの:
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
このエラーは、実行中の SQL クエリの不一致を示します。興味深いことに、MySQL ではなく SQLite データベースから選択することを提案しています。
この問題を修正し、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 関連のエラーを引き起こした可能性がある、生の接続を使用する最初の試行が不要になります。
以上がMySQL への書き込み時に Pandas の to_sql が「引数の数が間違っています」エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。