zoukankan      html  css  js  c++  java
  • 使用python读取csv文件快速插入数据库的实例

    如下所示:

    # -*- coding:utf-8 -*-
    # auth:ckf
    # date:20170703
    import pandas as pd
    import cStringIO
    import warnings
    from sqlalchemy import create_engine
    import sys
    
    reload(sys)
    sys.setdefaultencoding('utf8')
    warnings.filterwarnings('ignore')
    
    engine = create_engine(
     'postgresql+psycopg2://'数据库连接)
    
    filename = sys.argv[1]
    tablename = sys.argv[2]
    print '=== csvname is',filename ,'tablename is',tablename,'==='
    
    print 'read', filename, '...'
    df = pd.read_csv(filename, sep=';')
    print 'read', filename, 'done!'
    
    print 'lets insert ...'
    output = cStringIO.StringIO()
    # ignore the index
    df.to_csv(output, sep='	',index = False, header = False)
    output.getvalue()
    # jump to start of stream
    output.seek(0)
    
    connection = engine.raw_connection()
    cursor = connection.cursor()
    # null value become ''
    cursor.copy_from(output,tablename,null='')
    connection.commit()
    cursor.close()
    print 'done!'
    

    这个脚本可以直接运行,将csv文件放在同级目录即可。

    csv第一列需要有列名,如果csv里没有列名,需要在代码中添加列名。

    代码运行示例:python insert.py csvname tablename

  • 相关阅读:
    CSS中z-index的层级树概念
    随记
    PHP 随笔
    linux 相关
    Nginx 虚拟主机 VirtualHost 配置
    PHP 杂记
    Composer 资料
    PHP Yii架构学习
    java 日志技术汇总(log4j , Commons-logging,.....)
    Java 随笔
  • 原文地址:https://www.cnblogs.com/zaixiachengxuyuan/p/14465692.html
Copyright © 2011-2022 走看看