Запись в базу данных MySQL с помощью pandas с использованием SQLAlchemy, to_sql

пытаясь написать pandas dataframe в таблицу MySQL, используя to_sql. Раньше использовался flavor = 'mysql', однако он будет обесцениваться в будущем и хотел бы начать переход к использованию механизма SQLAlchemy.

образец кода:

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) 

Чтение отлично работает, но to_sql имеет ошибку:

DatabaseError: Выполнение не выполнено в sql 'SELECT name FROM sqlite_master WHERE type =' table 'AND name = ?;': Неверное количество аргументов во время форматирования строки

Почему это похоже на попытку использования sqlite? Каково правильное использование соединения sqlalchemy с mysql и, в частности, mysql.connector?

Я также попробовал передать движок в качестве соединения, и это дало мне ошибку, ссылаясь на объект курсора.

 data.to_sql(name='sample_table2', con=engine, if_exists = 'append', index=False) >>AttributeError: 'Engine' object has no attribute 'cursor' 

2 Solutions collect form web for “Запись в базу данных MySQL с помощью pandas с использованием SQLAlchemy, to_sql”

Использование движка вместо выполняемого raw_connection ():

 import pandas as pd import mysql.connector from sqlalchemy import create_engine engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False) data.to_sql(name='sample_table2', con=engine, if_exists = 'append', index=False) 

неясно, почему, когда я пробовал это вчера, он дал мне более раннюю ошибку

Кроме того, используйте пакет pymysql

 import pymysql from sqlalchemy import create_engine cnx = create_engine('mysql+pymysql://[user]:[pass]@[host]:[port]/[schema]', echo=False) data = pd.read_sql('SELECT * FROM sample_table', cnx) data.to_sql(name='sample_table2', con=cnx, if_exists = 'append', index=False) 
  • Sqlalchemy возвращает «устаревшие» строки?
  • Несколько много для многих столов объединяются с sqlalchemy
  • Переопределение имени таблицы в Flask-Alchemy
  • Получить последнее вставленное значение из MySQL с помощью SQLAlchemy
  • Как отключить кеширование SQLAlchemy?
  • SQLAlchemy: запрашивает пользовательское свойство на основе поля таблицы
  • Flask-SQLAlchemy - как сеансы работают с несколькими базами данных?
  • Как выполнить запрос «начинается с» с использованием SQL-алхимии?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.