cố gắng viết gấu trúc dataframe vào bảng MySQL bằng cách sử dụng to_sql. Trước đây đã được sử dụng flavor = 'mysql', tuy nhiên nó sẽ được khấu hao trong tương lai và muốn bắt đầu quá trình chuyển đổi sang sử dụng công cụ SQLAlchemy.Ghi vào cơ sở dữ liệu MySQL với gấu trúc bằng cách sử dụng SQLAlchemy, to_sql
mẫu mã:
import pandas as pd
import mysql.connector
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False)
cnx = engine.raw_connection()
data = pd.read_sql('SELECT * FROM sample_table', cnx)
data.to_sql(name='sample_table2', con=cnx, if_exists = 'append', index=False)
Các chi hoạt động tốt nhưng to_sql có một lỗi:
DatabaseError: Thực hiện không thành công trên sql 'SELECT tên TỪ sqlite_master ĐÂU type =' bảng' VÀ name = ?; ': Số lượng đối số sai trong khi định dạng chuỗi
Tại sao có vẻ như nó đang cố sử dụng sqlite? Việc sử dụng chính xác kết nối sqlalchemy với mysql và mysql.connector là gì?
Tôi cũng đã thử truyền động cơ ở dạng kết nối, và điều đó đã cho tôi lỗi khi tham chiếu không có đối tượng con trỏ.
data.to_sql(name='sample_table2', con=engine, if_exists = 'append', index=False)
>>AttributeError: 'Engine' object has no attribute 'cursor'
Bạn phải vượt qua Engine riêng của mình, không phải là một kết nối thô (trong tương lai một kết nối SQLAlchemy cũng sẽ có thể, nhưng không phải là một kết nối thô). Bạn có thể xem liệu điều đó có giải quyết được vấn đề không? – joris
Ah, tôi thấy rằng bạn đã thử rằng :-) Bạn có thể hiển thị lỗi bạn nhận được trong trường hợp đó không? – joris
khi sử dụng động cơ: AttributeError: đối tượng 'Engine' không có thuộc tính 'cursor' –