【问题标题】:How to copy from CSV file to PostgreSQL table with headers (including special characters) in CSV file?如何从 CSV 文件复制到 CSV 文件中带有标题(包括特殊字符)的 PostgreSQL 表?
【发布时间】:2020-03-30 17:29:01
【问题描述】:

我在一个文件夹中有 500 个不同的 CSV 文件。

我想获取一个 CSV 文件并导入 Postgres 表。

csv 中的列数未知,所以我不想一直打开 CSV 文件,然后创建表,然后使用 \copy 导入

我知道我能做到:

COPY users FROM 'user_data.csv' DELIMITER ';' CSV HEADER

但是,CSV 文件类似于:

user_id,5username,pas$.word
1,test,pass
2,test2,query

我必须将其转换为 postgres,但 postgres 不允许列名以数字或特殊字符开头,例如列名中的 .$

我希望 postgres 表看起来像:

user_id     ___5username      pas______word
1           test              pass
2           test2             query

我想用___替换特殊字符,如果列名以数字开头,则前缀为___

有没有办法做到这一点?我愿意接受 Python 或 Postgres 解决方案。

【问题讨论】:

    标签: python postgresql csv


    【解决方案1】:

    如果您可以选择pandas,请尝试:

    1. 使用 .read_csv() 从 CSV 文件创建数据框
    2. 使用.to_sql()将创建的数据框保存到SQL数据库中

    你也可以看到my tutorial on pandas IO API

    【讨论】:

      猜你喜欢
      • 2013-07-13
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      相关资源
      最近更新 更多