csv导入到数据库(目标参考注释)

Posted zsf-note

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csv导入到数据库(目标参考注释)相关的知识,希望对你有一定的参考价值。

import cx_Oracle as cx
import csv

#flag是你的日期列在哪一列,默认第一列
def save_data(reader,info,table_data,flag =1):     #目标:1、如果数据库中没有数据,那么所有数据都插入
                                                        # 2、如果数据库里数据日期大于当前需要插入的数据日期,那么不插入
    for i, rows in enumerate(reader):
        rowsdata = ‘‘
        if i > 0:
            for j in range(len(rows)):
                rowsdata +=  + rows[j] + ‘,    #构造values(‘‘,‘‘,‘‘,)
            rowsdata = rowsdata[:-1]                  #去掉末尾的 ,

            if info[0][0] is None or info[0][0] < int(rows[flag - 1]):    #参照【目标】,info[0][0]就是数据库里最大的,参考file_addr函数的sql
                cursor.execute("insert into " + table_data + " values( " + rowsdata + ")")  #执行导入
                conn.commit()

def file_addr():                                            #   有其他表直接再新增函数就可以
    f =  open(E:/shuju/3.csv)
    reader = csv.reader(f)
    sql = select max(oc_date) from reportdata.dw_data_hy
    cursor.execute(sql)
    info = cursor.fetchall()
    save_data(reader,info,table_data,flag=2)    #如果不是第一列,在这里加flag
    f.close()


if __name__ == __main__:
    table_data = dw_data_hy                #表名
    username = reportdata                  #数据库名
    passwd = reportdata                    #数据库密码
    host = localhost                       # ip
    port = 1521                            # 端口
    sid = orcl                             #数据库实例名
    tns = cx.makedsn(host,port,sid)          #tns固定搭配
    conn = cx.connect(username,passwd,tns)   #数据库连接
    cursor = conn.cursor()                   #启用游标指针

    file_addr()
    print(XXX数据导入成功!)

 

以上是关于csv导入到数据库(目标参考注释)的主要内容,如果未能解决你的问题,请参考以下文章

excl数据怎么导入到MongoDB中,或者怎样将excl处理在导入到数据库中,数据量有4万条

CSV 到 MySQL 的转换和导入

Oracle导入SQL文件,中文乱码

vscode怎么导入读取csv文件数据

如何把csv文件导入到sql数据库

pandas写入csv文件时,如果该文件已存在