Объект «SQLTable» не имеет атрибута «insert_statement» - PullRequest
0 голосов
/ 08 ноября 2019

Я настраиваю новый компьютер на работе, и после установки anaconda и других различных пакетов, которые у меня есть на моем другом компьютере, я пытаюсь запустить некоторый код, который отлично работает на моем другом компьютере.

Однако при попытке использовать SQLalchemy для импорта в красное смещение я получаю новую ошибку, которую не могу найти через google:

У объекта 'SQLTable' нет атрибута 'insert_statement'

это похоже на некоторую проблему с padas.io.sql, но я понятия не имею, что

здесь блок кода:

import io
from pandas.io.sql import SQLTable

def _execute_insert(self, conn, keys, data_iter):
    print("Using monkey-patched _execute_insert")
    data = [dict((k, v) for k, v in zip(keys, row)) for row in data_iter]
    conn.execute(self.insert_statement().values(data))

SQLTable._execute_insert = _execute_insert

import pandas as pd
from sqlalchemy import create_engine
from sqlalchemy import text

dbschema='xref'
engine = create_engine('not_showing_you_this_part',
                              connect_args={'options': '-csearch_path={}'.format(dbschema)})
# test
from sqlalchemy import event, create_engine
@event.listens_for(engine, 'before_cursor_execute')
def receive_before_cursor_execute(conn, cursor, statement, params, context, executemany):
    if executemany:
        cursor.fast_executemany = True
        cursor.commit()
# end test
api_start_time = time.time()
print('starting SQL query')
# change yh to the dataframe you want to upload
# under name = : enter in the name of the table you want to create or append to
df.to_sql(name='computer_test', con = engine, if_exists = 'append',index=False)
print('sql insert took: ' + str((time.time() - api_start_time)) + ' seconds')

для справки,Часть обезьяны-патча от: Как ускорить вставку из pandas.DataFrame .to_sql

полная ошибка в изображении

enter image description here

...