Heim >Datenbank >MySQL-Tutorial >Warum schlägt to_sql von Pandas beim Schreiben in MySQL mit dem Fehler „Falsche Anzahl von Argumenten' fehl?

Warum schlägt to_sql von Pandas beim Schreiben in MySQL mit dem Fehler „Falsche Anzahl von Argumenten' fehl?

Linda Hamilton
Linda HamiltonOriginal
2024-11-27 15:20:11534Durchsuche

Why Does Pandas' to_sql Fail with a

Fehlerbehebung beim Schreiben in eine MySQL-Datenbank mit Pandas mithilfe von to_sql von SQLAlchemy

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:

  • Verwenden Sie das Engine-Objekt direkt als Verbindungsparameter für 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)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn