pandas.DataFrame.to_sql вставляет данные, но не фиксирует транзакцию - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть кадр данных pandas, который я пытаюсь вставить в MS SQL EXPRESS, как показано ниже:

import pandas as pd
import sqlalchemy

engine = sqlalchemy.create_engine("mssql+pyodbc://user:password@testodbc")
connection = engine.connect()

data = {'Host': ['HOST1','HOST2','HOST3','HOST4'],
    'Product': ['Apache HTTP 2.2','RedHat 6.9','OpenShift 2','JRE 1.3'],
    'ITBS': ['Infrastructure','Accounting','Operations','Accounting'],
    'Remediation': ['Upgrade','No plan','Decommission','Decommission'],
    'TargetDate': ['2018-12-31','NULL','2019-03-31','2019-06-30']}

df = pd.DataFrame(data)

Когда я звоню:

df.to_sql(name='TLMPlans', con=connection, index=False, if_exists='replace')

, а затем:

print(engine.execute("SELECT * FROM TLMPLans").fetchall())

Я могу видеть данные в порядке, но они фактически не совершают никаких транзакций:

D:\APPS\Python\python.exe 
C:/APPS/DashProjects/dbConnectors/venv/Scripts/readDataFromExcel.py
[('HOST1', 'Apache HTTP 2.2', 'Infrastructure', 'Upgrade', '2018-12-31'), ('HOST2', 'RedHat 6.9', 'Accounting', 'No plan', 'NULL'), ('HOST3', 'OpenShift 2', 'Operations', 'Decommission', '2019-03-31'), ('HOST4', 'JRE 1.3', 'Accounting', 'Decommission', '2019-06-30')]

Process finished with exit code 0

enter image description here

Здесь говоритсяМне не нужно фиксировать, как это делает SQLAlchemy:

Требуется ли для функции Pandas DataFrame.to_sql () последующая фиксация ()?

и приведенные ниже предложенияне работают:

Pandas to_sql не вставляет никаких данных в мою таблицу

Я потратил 3 часа на поиски подсказок по всему Интернету, но я 'Я не получаю каких-либо соответствующих ответов, или я не знаю, как задать вопрос.

Буду очень признателен за любые указания о том, что искать.

ОБНОВЛЕНИЕ

Я могу зафиксировать изменения, используя соединение pyodbc и полный оператор вставки, однако pandas.DataFrame.to_sql () с механизмом SQLAlchemy не работает.Он отправляет данные в память вместо фактической базы данных, независимо от того, указана схема или нет.

Буду очень признателен за помощь в этом, или, возможно, это проблема панды, о которой мне нужно сообщить?

...