Интересно, как быстро записать данные из pandas DataFrame в таблицу в DB почтовых сообщений.Написать быстрый панда данных для postgres
1) Я попытался pandas.to_sql
, но по какой-то причине он принимает объект, чтобы скопировать данные,
2) к тому же я попробовал следующее:
import io
f = io.StringIO()
pd.DataFrame({'a':[1,2], 'b':[3,4]}).to_csv(f)
cursor = conn.cursor()
cursor.execute('create table bbbb (a int, b int);COMMIT; ')
cursor.copy_from(f, 'bbbb', columns=('a', 'b'), sep=',')
cursor.execute("select * from bbbb;")
a = cursor.fetchall()
print(a)
cursor.close()
но он возвращает пустой список []
.
У меня есть два вопроса: какой самый быстрый способ скопировать данные из кода python (dataframe) в postgres DB? и что было неправильным во втором подходе, который я пробовал?
Я получаю следующий код ошибки: InternalError: текущая транзакция прерывается , команды, проигнорированные до конца транзакционного блока, - выглядят как некоторая sql-ошибка orr ??) –
Вы находитесь в середине [транзакции] (https://www.postgresql.org/docs/current/static/tutorial-transactions. html), в котором была ошибка. Вам нужно сделать 'conn.rollback()', а затем 'conn.begin()' еще раз. – Michael
Большое спасибо, но все же. DataError: дополнительные данные после последнего ожидаемого столбца CONTEXT: COPY bbbb, строка 1: «0,1,3» –