Maison >base de données >tutoriel mysql >Pourquoi le to_sql de Pandas échoue-t-il avec une erreur « Mauvais nombre d'arguments » lors de l'écriture sur MySQL ?
Lorsque vous essayez d'écrire un DataFrame Pandas dans une base de données MySQL à l'aide de la méthode to_sql de SQLAlchemy, vous pouvez rencontrer une erreur qui ressemble à :
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
Cette erreur indique une divergence dans le SQL requête en cours d'exécution. Fait intéressant, cela suggère une tentative de sélection à partir d'une base de données SQLite au lieu de MySQL.
Pour résoudre ce problème et établir la connexion correcte avec MySQL à l'aide du moteur SQLAlchemy et de mysqlconnector, suivez ces étapes :
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)
Cette modification garantit que le La connexion utilisée à la fois pour la lecture et l'écriture est le moteur SQLAlchemy connecté à MySQL. Cela élimine la tentative initiale d'utilisation d'une connexion brute, qui aurait pu déclencher l'erreur liée à SQLite.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!