Beim Versuch, einen Pandas-DataFrame mithilfe der to_sql-Methode von SQLAlchemy in eine MySQL-Datenbank zu schreiben, kann ein Fehler auftreten ähnelt:
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
Dieser Fehler weist auf eine Diskrepanz hin in der ausgeführten SQL-Abfrage. Interessanterweise schlägt es einen Versuch vor, aus einer SQLite-Datenbank anstelle von MySQL auszuwählen.
Um dieses Problem zu beheben und die korrekte Verbindung mit MySQL mithilfe der SQLAlchemy-Engine und mysqlconnector herzustellen, befolgen Sie diese Schritte:
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)
Diese Änderung stellt sicher, dass die zum Lesen und Schreiben verwendete Verbindung die mit MySQL verbundene SQLAlchemy-Engine ist. Dadurch entfällt der anfängliche Versuch, eine Rohverbindung zu verwenden, der möglicherweise den SQLite-bezogenen Fehler ausgelöst hat.
Das obige ist der detaillierte Inhalt vonWarum schlägt to_sql von Pandas beim Schreiben in MySQL mit dem Fehler „Falsche Anzahl von Argumenten' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!