Menggunakan SQLAlchemy dengan MySQL untuk Menulis Pandas DataFrames ke MySQL
Apabila cuba menulis panda DataFrame ke jadual MySQL menggunakan kaedah to_sql sambil beralih daripada sintaks 'flavor='mysql'' yang tidak digunakan kepada enjin SQLAlchemy yang disyorkan pendekatan, pengguna mungkin menghadapi ralat yang serupa dengan:
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 bahawa SQLite sedang digunakan dan bukannya MySQL. Untuk menyelesaikan masalah ini, pastikan penggunaan sambungan SQLAlchemy yang betul dengan MySQL dan khususnya mysql.connector.
Penyelesaian
Ralat boleh diselesaikan dengan menggunakan enjin yang dibuat dengan SQLAlchemy secara langsung sebagai sambungan untuk kaedah to_sql, bukannya mendapatkan sambungan mentah daripada enjin. Berikut ialah kod yang diperbetulkan:
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)
Dengan menggunakan enjin sebagai sambungan, sambungan SQLAlchemy diwujudkan dengan betul dan ralat berkenaan SQLite dihapuskan. Ini membolehkan DataFrame berjaya ditulis ke jadual MySQL.
Atas ialah kandungan terperinci Bagaimana untuk Menulis Pandas DataFrames dengan betul ke MySQL Menggunakan SQLAlchemy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!