Rumah >pangkalan data >tutorial mysql >Mengapa Pandas\' to_sql Gagal dengan Ralat \'Bilangan Argumen Yang Salah\' Semasa Menulis ke MySQL?
Apabila cuba menulis Pandas DataFrame ke pangkalan data MySQL menggunakan kaedah to_sql SQLAlchemy, anda mungkin menghadapi ralat yang menyerupai:
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
Ralat ini menunjukkan percanggahan dalam pertanyaan SQL yang sedang dilaksanakan. Menariknya, ia mencadangkan percubaan untuk memilih daripada pangkalan data SQLite dan bukannya MySQL.
Untuk membetulkan isu ini dan mewujudkan sambungan yang betul dengan MySQL menggunakan enjin SQLAlchemy dan mysqlconnector, ikut langkah berikut:
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)
Pengubahsuaian ini memastikan sambungan yang digunakan untuk membaca dan menulis ialah enjin SQLAlchemy yang disambungkan kepada MySQL. Ia menghapuskan percubaan awal untuk menggunakan sambungan mentah, yang mungkin telah mencetuskan ralat berkaitan SQLite.
Atas ialah kandungan terperinci Mengapa Pandas\' to_sql Gagal dengan Ralat \'Bilangan Argumen Yang Salah\' Semasa Menulis ke MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!