Скопируйте Pandas Dataframe в Postgres с помощью odo - PullRequest
0 голосов
/ 18 октября 2018

Существует одна из лучших библиотек Python, которую я хотел бы использовать для передачи данных из Pandas в мою базу данных postgres.это выглядит так удобно, но мне не удается его использовать :(.

Кто-то знает, что мне не хватает. Это должно быть мелочь .....

  • Dataframe = df
  • имя пользователя: postgres
  • пароль: пароль
  • хост: localhost
  • таблица: table_

ИтакЯ пришел со следующим кодом:

import odo, pandas 
..... 
odo(df, 'postgresql://postgres:password@localhost::mapping_ean_asin') 

Я получил ошибку:

TypeError: 'module' object is not callable

Заранее благодарю за помощь :)

1 Ответ

0 голосов
/ 18 октября 2018

Решение моего вопроса :)!

SQL_STATEMENT = """ COPY %s FROM STDIN WITH
    CSV
    HEADER
    DELIMITER AS ','
"""

my_file = open("/home.........csv")


def process_file(conn, table_name, file_object):
      cursor = conn.cursor()
      cursor.copy_expert(sql=SQL_STATEMENT % table_name, file=file_object)
      conn.commit()
      cursor.close()

connection =  psycopg2.connect("dbname='postgres' user='postgres' host='localhost'           password='password'")
     try:
           process_file(connection, 'my table', my_file)
     finally:
           connection.close()

Я бы предпочел решение в одной строке с odo, но я получил вторую ошибку .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...