Utilisation de SQLAlchemy avec MySQL pour écrire des DataFrames Pandas sur MySQL
Lors de la tentative d'écriture d'un DataFrame pandas sur une table MySQL à l'aide de la méthode to_sql pendant en passant de la syntaxe obsolète 'flavor='mysql'' à l'approche recommandée du moteur SQLAlchemy, les utilisateurs peuvent rencontrer une erreur similaire à :
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
Cette erreur suggère que SQLite est utilisé à la place de MySQL. Pour résoudre cela, assurez-vous de la bonne utilisation d'une connexion SQLAlchemy avec MySQL et spécifiquement mysql.connector.
Solution
L'erreur peut être résolue en utilisant le moteur créé avec SQLAlchemy directement comme connexion pour la méthode to_sql, au lieu d'obtenir une connexion brute du moteur. Voici le code corrigé :
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)
En utilisant le moteur comme connexion, la connexion SQLAlchemy est correctement établie et l'erreur concernant SQLite est éliminée. Cela permet au DataFrame d'être écrit avec succès dans la table MySQL.
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!