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 ?

Pourquoi le to_sql de Pandas échoue-t-il avec une erreur « Mauvais nombre d'arguments » lors de l'écriture sur MySQL ?

Linda Hamilton
Libérer: 2024-11-27 15:20:11
original
580 Les gens l'ont consulté

Why Does Pandas' to_sql Fail with a

Dépannage de l'écriture dans une base de données MySQL avec Pandas à l'aide de to_sql de SQLAlchemy

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
Copier après la connexion

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 :

  • Utiliser l'objet moteur directement comme paramètre de connexion pour 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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal