Verwenden von SQLAlchemy mit MySQL zum Schreiben von Pandas-DataFrames in MySQL
Beim Versuch, einen Pandas-DataFrame mit der to_sql-Methode in eine MySQL-Tabelle zu schreiben Beim Übergang von der veralteten Syntax „flavor='mysql“ zum empfohlenen SQLAlchemy-Engine-Ansatz können Benutzer auf ein Problem stoßen Fehler ähnlich:
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
Dieser Fehler deutet darauf hin, dass SQLite anstelle von MySQL verwendet wird. Um dieses Problem zu beheben, stellen Sie die korrekte Verwendung einer SQLAlchemy-Verbindung mit MySQL und insbesondere mysql.connector sicher.
Lösung
Der Fehler kann durch die Verwendung der mit erstellten Engine behoben werden SQLAlchemy direkt als Verbindung für die to_sql-Methode verwenden, anstatt eine Rohverbindung von der Engine abzurufen. Hier ist der korrigierte Code:
import pandas as pd import mysql.connector from sqlalchemy import create_engine # Create an SQLAlchemy engine engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False) # Read data from the MySQL table data = pd.read_sql('SELECT * FROM sample_table', engine) # Write the DataFrame to a new table data.to_sql(name='sample_table2', con=engine, if_exists='append', index=False)
Durch die Verwendung der Engine als Verbindung wird die SQLAlchemy-Verbindung ordnungsgemäß hergestellt und der Fehler bezüglich SQLite behoben. Dadurch kann der DataFrame erfolgreich in die MySQL-Tabelle geschrieben werden.
Das obige ist der detaillierte Inhalt vonWie schreibe ich Pandas-DataFrames mit SQLAlchemy korrekt in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!