工作随笔记

今天是入职新公司整一个月,之前领导一直让我写的工时我一直没补,工作忙完了我终于记得把工时给补上,心里不装着什么事儿的是真的舒服。
昨天领导交给我一个任务,让我对比两个数据的一致性,大体需求是说一部分数据是目前爬出来或者客户提供的,另一部分数据是根据前面这些数据插入到Oracle表中的,领导让我检查一下她插入的数据是否有遗漏或不一致,给了我验证插入数据的一个字段,这个字段是一个编码怎么说呢,一眼望去都是密密麻麻的数字,简直令人眼瞎,以下是经过修改的部分数据代码:

手工验证完毕像这样的数据量我着实懵逼,用肉眼看那不得看瞎了,怎么办呢,于是我想了第一个解决方案使用代码对比工具,在线对比两批数据是否一致,不过这个工具没有记录功能,加上我脑子不是很好用,所以我常常贴着贴着
# 就忘记了哪里是源数据,哪里是Oracle数据库里的数据,再加上这个不是我写的软件真的是不好用。我开始尝试第二个方案,将要对比的数据放到一个列表里进行对比,使用Python代码的形式,听起来那就高级多了。但是糟糕,由于这些数据都是什么00开头的,在Python中以00开头的数据好像就不是10进制,这个办法作废.于是我想要不将所有的数据都加上引号,全部变成字符串那这样解决问题不是很好.
# 可惜啊可惜,想使用chatgpt处理这么大量的数据,想表达清楚我的需求以及全部处理完毕,需要的时间和耗费的精力,那不是我可以承受的,我索性再换一种方案。我将源数据 存到一张文档里 再将数据库的数据查出来 在存到一张文档里,读取出来的数据,进行存到列表里,通过对比两个列表是否一致,这样解决问题就堪称完美.但可是,可但是就在我沾沾自喜的时候
# 我发现list类型 要内容一致 并且还需要顺序一致,但是我两个数据的顺序未必一致,于是我通过list转换为set进行对比,set是无序的,问题解决,以下是代码
def data_duibi(filepath1,filepath2):
    list1 = []
    list2 = []

    with open(filepath1, 'r', encoding='utf-8') as file:
        for line in file:
            list1.append(str(line).replace('\n', ''))
        list1.sort()
        print(list1)

    with open(filepath2, 'r', encoding='utf-8') as file:
        for line in file:
            list2.append(str(line).replace('\n', ''))
        list2.sort()
        print(list2)


    if list1  == list2:
        print(True)
    else:
        set1 = set(list1)
        set2 = set(list2)

        # 数据库数据中存在,原数据数据不存在
        difference = set2.difference(set1)

        # 原数据中存在,目标数据数据不存在

        difference2 = set1.difference(set2)

        print('数据库数据中存在,原数据数据不存在------>',difference)
        print('原数据中存在,目标数据数据不存在 ------->',difference2)

# 肉类
data_duibi(r'C:\Users\User\Desktop\data\肉类source_data.txt',r'C:\Users\User\Desktop\data\肉类_MYSQL数据.txt')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安洪旭真好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值