使用Python将CSV文件导入PostgreSQL数据库
前言
遇到了一个需求,需要将给定的样表导入数据库中。这有什么,直接SQL
!然后一看
想点办法
当然,这个时候就得请出我们无所不能的数据处理器:pandas
。
1 | my_data = pandas.read_csv('my_data.csv') |
没啥问题。
然后呢?我们的pandas
给了一个to_sql
方法,直接导入数据库。
1 | my_data.to_sql('my_table', conn, if_exists='append', index=False) |
也没啥问题。执行!
遇到问题
报错无法解析conn
。而且报错内容很诡异,说是在AND name=?;
这个地方出现了SQLError
。
但是我只有to_sql
,也没有编写SQL
,更没有用execute
执行啊。
解决问题
于是注意到,conn
需要使用sqlalchemy
来创建,这是PostgreSQL
的官方提示。
那就试试看:
先安装:
1 | pip install sqlalchemy |
然后写脚本:
1 | from sqlalchemy import create_engine |
这样就好了。
需要注意的是,这样的方法并不需要你创建对应的表,直接就能够导入。非常的方便。