【发布时间】: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