python - 使用 odo 将 Pandas Dataframe 复制到 Postgres

标签 python postgresql pandas odo

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

有人知道我缺少什么吗?一定是小东西.....

  • 数据框 = df
  • 用户名:postgres
  • 密码:密码
  • 主机:本地主机
  • 表:table_

所以我带来了以下代码行:

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

我得到了错误:

TypeError: 'module' object is not callable

预先感谢您的帮助:)

最佳答案

解决我的问题 :) !

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

关于python - 使用 odo 将 Pandas Dataframe 复制到 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52874495/

相关文章:

postgresql - 如何在 PostgreSQL 中调试触发器递归?

postgresql - 使用动态目标列进行查询

python-3.x - 在另一列的条件下用 Pandas 替换字符串列以特定子字符串结尾

python - 如何将具有行数组的 Dataframe 转换为 numpy 矩阵?

python - 我应该如何从 Python 类中公开只读字段?

Python,2个列表之间所有可能的数字组合

python - 如何在 Robot Framework 中设置 FireFox 的首选项

python - PyQt - QComboBox 连接已确认,但未调用函数

c# - 使用 C# 插入到 postgresql 表中

python - 检查 Pandas 数据框是否是其他数据框的子集