使用odo将Pandas Dataframe复制到Postgres

时间:2018-10-18 12:52:13

标签: python postgresql pandas odo

我想使用这个顶级python库odo将数据从Pandas传输到我的postgres db。它看起来很方便,但我无法使用它:(。

让某人知道我所缺少的。一定是小东西...

  • Dataframe = df
  • 用户名:postgres
  • 密码:密码
  • 主机:本地主机
  • 表格:表格

所以我附带了以下代码:

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

我得到了错误:

TypeError: 'module' object is not callable

在此先感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我有疑问的解决方案:)!

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与一行解决方案,但是我遇到了第二个错误.....