pandas.read_sql sử dụng một trong hai:
- một đối tượng kết nối sqlalchemy
engine.connect()
- một đối tượng db api chỉ dành cho sqlite
bằng cách sử dụng raw_connection()
, bạn có một đối tượng kết nối db api, vì vậy gấu trúc tin rằng đó là một kết nối với cơ sở dữ liệu sqlite (như chúng tôi thấy trong lỗi của bạn FROM sqlite_master WHERE
)
bạn cần sử dụng con = engine.connect()
import sqlalchemy
import pandas
engine = sqlalchemy.create_engine('...')
with engine.connect() as conn:
print('sqla:', list(conn.execute('select * from users')))
df = pandas.read_sql('select * from users', conn)
print('df:', df)
df.to_sql('users2', conn)
print('sqla:', list(engine.connect().execute('select * from users2')))
kết quả đầu ra:
sqla: [(1, 'toto'), (2, 'titi'), (3, 'tutu'), (4, 'tata')]
df: id name
0 1 toto
1 2 titi
2 3 tutu
3 4 tata
sqla: [(1, 'toto'), (2, 'titi'), (3, 'tutu'), (4, 'tata')]
như mong đợi