python数据导入mysql

import os,time,isodate,json,pymysql

def cursor(call,*data):
    conn=pymysql.connect(host='127.0.0.1',user='root',password='123456',db='test',charset='utf8',cursorclass=pymysql.cursors.DictCursor)
    try:
        with conn.cursor() as cursor:
            call(cursor,data)
        conn.commit();
    finally:
        conn.close()


datadir="C:/Users/86135/Documents/test"#数据文件目录
database="test"
datafiles=os.listdir(datadir)

def exec(cursor,data):
    num=len(datafiles)
    for datafile in datafiles:
        print(datafile,num,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
        num-=1
        sp=datafile.split('.')
        if(len(sp)!=2 or sp[1]!='json'):
            print("文件格式错误",datafile);
            continue;
        f=open(datadir+"/"+datafile,'r')
        data=json.loads(f.read())
        f.close()
        timeFieldIndex=[]
        for i in range(len(data["fields"])):
            if(data["fields"][i].get("type")=="datetime"):
                timeFieldIndex.append(i)
        sql="insert into "+database+".`"+sp[0]+"`("+str.join(',',map(lambda x:"`"+x["name"]+"`",data["fields"]))+")values("+str.join(",",map(lambda x:"%s",data["fields"]))+")"
        for row in data["data"]:
            for i in timeFieldIndex:
                if row[i] is not None:
                    row[i]=isodate.parse_datetime(row[i])
            cursor.execute(sql,row)
cursor(exec);

print("数据导入mysql",time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))

数据格式{"fields":[{"name":"id"}],//表字段
"data":[[1]]//表数据
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值