AttributeError: у объекта 'psycopg2.extensions.cursor' нет атрибута 'fast_executemany' - PullRequest
0 голосов
/ 26 декабря 2018

AttributeError: у объекта 'psycopg2.extensions.cursor' нет атрибута 'fast_executemany'

to_sql () слишком медленный.поэтому пытаюсь решить проблему.но когда я запускаю следующий код, я получаю: -

AttributeError: у объекта 'psycopg2.extensions.cursor' нет атрибута 'fast_executemany'

@event.listens_for(conn, 'before_cursor_execute')
def receive_before_cursor_execute(conn, cursor, statement, params, context, executemany):
    if executemany:
        cursor.fast_executemany = True
        cursor.commit()

1 Ответ

0 голосов
/ 26 декабря 2018

использовать вставку с кортежами в 200 раз быстрее, чем executemany в psycopg

args_str = ','.join(cur.mogrify("(%s,%s,%s,%s,%s,%s,%s,%s,%s)", x) for x in tup)
cur.execute("INSERT INTO table VALUES " + args_str) 

эквивалент

INSERT INTO table VALUES ('a', 'b', 'c'), ('a', 'b', 'c'), ('a', 'b', 'c'), ('a', 'b', 'c');
...