zoukankan      html  css  js  c++  java
  • 用python比对csv文件中的数据

    做了个问卷,下载了收集数据xlsx文件,把数据弄到另一个表格文件中,需要校验数据转移的准确性。
    使用python的csv库,使用csv.reader(f)函数读取表格数据,转成列表,确定数据行的主键,将主键作为字典的一个键,键的值是该行其他数据。
    通过这次编程学到了python的dict类型添加键时直接[一个不曾存在的键],合并列表时直接用加号衔接。[1]+[2] ==> [1, 2]
    下面贴出代码:

    import csv
    
    with open('a.csv') as f:
    	reader = csv.reader(f)
    	# print(list(reader))
    	# input()
    	als = list(reader)
    
    with open('b.csv') as f:
    	reader = csv.reader(f)
    	# print(list(reader))
    	bls = list(reader)
    
    bdict = {}
    for b in bls[1:]:
    	if b[2] == '':
    		continue
    	bdict[b[2]] = [b[i] for i in [1]+list(range(4, 13))]
    
    adict = {}
    for a in als[1:]:
    	adict[a[10]] = [a[i] for i in [9]+list(range(11, 20))]
    
    for a in als[1:]:
    	a_ls = adict[a[10]]
    	b_ls = bdict[a[10]]
    	b_wrong = False
    	for i in range(len(a_ls)):
    		if i in [1, 8]:
    			if b_ls[i] not in a_ls[i]:
    				b_wrong = True
    				a_str = a_ls[i]
    				b_str = b_ls[i]
    		else:
    			if b_ls[i] != a_ls[i]:
    				b_wrong = True
    				a_str = a_ls[i]
    				b_str = b_ls[i]
    		if b_wrong:
    			print('%s的%s和%s不一致'%(a[10], a_str, b_str))
    			break
    

    其实用不着校验,在转移数据的时候使用csv库读和写,逻辑正确就肯定没问题。

    当然机器做事不会出错,使用机器并不意味着人的能力的低下。

    参考链接

    1

    【Python】Python处理csv文件

    2

    python中如何合并两个列表

  • 相关阅读:
    一个菜鸟把Vue项目打包为APP的道路
    echarts
    no module named selenium
    git使用教程
    JDK安装与环境变量配置
    家具摆件
    家店分会场
    双十一电器城
    室内门锁
    http://cjy.suda.edu.cn/File.aspx?id=427
  • 原文地址:https://www.cnblogs.com/tellw/p/13588816.html
Copyright © 2011-2022 走看看