美文网首页
Excel导入数据库(字段表名不一样)

Excel导入数据库(字段表名不一样)

作者: 叶叶阿姨 | 来源:发表于2021-02-08 10:16 被阅读0次

    一堆Excel需要导入数据库,但是表名和字段完全不一样(需要改名,并且不是所有字段都要)
    1.先打开文件

    import pandas as pd
    # 读数据
    pd.read_csv(filename)  # 读取 csv文件
    pd.read_excel(filename)  # 读取 xls文件
    pd.read_excel(filename, sheet_name=0)   # 读取 xlsx文件
    pd.read_table(filename)  # 读取 TXT文件
    pd.read_sql(sql=query, con=connection_object)  # 进行sql语句操作,并读取
    
     data = pd.read_excel(r'D:\监控报表\日报\日报模板\全国区域与运营中心.xls')
        test_data = []  # 需要用到的字段
        area_data = []  # 区域
        for i in data.index.values:  # 获取行号的索引,并对其进行遍历:
            # 根据i来获取每一行指定的数据 并利用to_dict转成字典
            row_data = data.loc[i, ['二级组织机构名称', '三级组织机构名称', '四级组织机构名称']].to_dict()
            test_data.append(row_data)
            area_data.append(row_data['二级组织机构名称'])
            # print("最终获取到的数据是:{0}".format(test_data))
        area_data = list(set(area_data))  # 去重的区域列表
        # 写入区域
        for i in area_data:
            if Region.objects.filter(region_name=i):
                print('区域已存在')
            else:
                Region.objects.create(region_name=i)
                # print(i, '区域写入完成')
        # 写入运营中心
        for i in test_data:
            if OperCent.objects.filter(name=i['三级组织机构名称']):
                print(i, '运营中心已存在')
            else:
                # print('运营中心需写入', i['三级组织机构名称'], i['二级组织机构名称'])
                region_id = Region.objects.filter(region_name=i['二级组织机构名称']).first()
                # print(region_id)
                OperCent.objects.create(name=i['三级组织机构名称'], region_name=region_id)
        # 写入运
        for i in test_data:
            if Tran.objects.filter(tran_name=i['四级组织机构名称']):
                print(i, '四级组织机构已存在')
            else:
                # print('四级组织机构心需写入', i['四级组织机构名称'])
                opercent_id = OperCent.objects.filter(name=i['三级组织机构名称']).first()
                # print(opercent_id)
                Tran.objects.create(tran_name=i['三级组织机构名称'], operent_name=opercent_id)
        ------------------------------ 写入单仓 -------------------------------
        读取整个csv文件
        csv_data = pd.read_csv(r"D:\监控报表\日报\日报模板\全国运营中心下的单仓.csv", engine='python', encoding='gb2312')
        sj_test_data = []  # 需要用到的字段
        for i in csv_data.index.values:
            row1_data = csv_data.loc[i, ['操作区名称', '运营中心名称', '项目名称', '仓配库房名称']].to_dict()
            sj_test_data.append(row1_data)
        # 写入单仓
        for i in sj_test_data:
            if Warh.objects.filter(warh_name=i['仓配库房名称']):
                print(i['仓配库房名称'], '单仓已存在')
            else:
                print('单仓需写入', i['仓配库房名称'])
                opercent_id = OperCent.objects.filter(name=i['运营中心名称']).first()
                region_id = Region.objects.filter(region_name=i['操作区名称']).first()
                Warh.objects.create(warh_name=i['仓配库房名称'], project=i['项目名称'], operent_name=opercent_id, region_name=region_id)
    
    
    

    相关文章

      网友评论

          本文标题:Excel导入数据库(字段表名不一样)

          本文链接:https://www.haomeiwen.com/subject/hpgetltx.html