pandas to_sql не может адаптировать тип 'dict'

Мне нужно записать кадр данных pandas в таблицу PostgreSQL. Здесь вы найдете фрагмент кода:

values = [1, 1]
d = {'col1': values, 'col2': values}
df = pd.DataFrame(data=d)
df.to_sql('prograd_dashboard', con=dbConnection, if_exists='replace', index=False,  method='multi')

Я сталкиваюсь с этим сообщением об ошибке:

sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt type 'dict' 'INSERT INTO prograd_dashboard (col1, col2) VALUES (%(col1)s, %(col2)s)' {'col1': {'col1': 1, 'col2': 1}, 'col2': {'col1': 1, 'col2': 1}}

Как видите, в кадре данных нет словаря. Однако на самом деле в команде вставки, сгенерированной sqlalchemy, есть словарь.

Если я установлю method=None, код работает отлично. Однако производительность снижается по мере увеличения количества записей.

Как я могу решить эту проблему? Спасибо!


person spirogyra    schedule 08.04.2021    source источник
comment
Отвечает ли это на ваш вопрос? SQLAlchemy (psycopg2.ProgrammingError) не может адаптировать тип 'dict'   -  person oreopot    schedule 08.04.2021


Ответы (1)


Я решил эту проблему, обновив библиотеки pandas и SQLAlchemy.

person spirogyra    schedule 09.04.2021
comment
Какую версию pandas как SQL Alchemy вы использовали для исправления? - person Kavi Sek; 15.07.2021
comment
В настоящее время я использую версию 1.3.24. - person spirogyra; 16.07.2021