如何使用Python将csv数据导入到Postgresql数据库

关于安装网上一搜一大堆,这里不再赘述,只介绍在工作中遇到的一些问题及解决方法

Postgresql 的安装与使用

可以参考: https://www.cnblogs.com/qiyebao/p/4562557.html

\c 数据库名 # 切换数据库
\l 查看数据库
\d 表名 # 查看表名s
# 创建schema
create schema schema名;
# 登录数据库
psql -h 127.0.0.1 -d postgres -U postgres

如何从终端导入csv文件到数据库

 COPY 表名 from '/你的路径/123456.csv' with csv header;
# 示例
 COPY visit.inpat_record from '/home/day04/new_insert_data/visit.inpat_record.csv' with csv header;

如何使用python将csv 数据导入到postgresql 中

官方文档参考:https://www.postgresql.org/docs/current/sql-copy.html

在csv中,默认是逗号分隔符,但是如果你的字段中本身就有逗号的话,而你又想用csv 格式导入数据,这个时候,就需要用到copy的参数 DELIMITER
如果你的字段中有些是空值,这个时候需要用到copy的参数NULL

     try:
          file_path = "/home/123.csv"
          with open(file_path, 'r', encoding='utf-8', newline='') as f:
              insert_sql = """COPY diag.patient FROM STDIN WITH (FORMAT CSV,HEADER true, NULL 'nan', DELIMITER '\t')""" 
              cursor.copy_expert(insert_sql, f)
              conn.commit()
    except Exception as e:
        print(str(e))
        conn.rollback()

你可能感兴趣的:(如何使用Python将csv数据导入到Postgresql数据库)