需求:不需要字段一 一对应对比,都存在即可认为相同
1.is0805.xls:数据格式



2.act.xls:数据格式


对比后输出:


import xlrd
import json

# 将两个文件处理成列表
path1 = 'E:/data806/act.xls'
path2 = 'E:/data806/is0805.xls'

workbook1 = xlrd.open_workbook(path1)
Datasheet1 = workbook1.sheets()[0]

workbook2 = xlrd.open_workbook(path2)
Datasheet2 = workbook2.sheets()[0]

num1 = Datasheet1.nrows

for n in range(1, num1):
    dict1 = json.loads(Datasheet2.cell_value(n, 9))  # 这是一个多级字典   #对脚本跑出来的处理
    dict11 = dict1['fd_risklv']

    list1 = []
    list1 = list(dict11.values())  #取出字典所有value转成 list1 无序列表

    # 将脚本跑出的json数据处理成顺序输出的列表1
    list_py = sorted(list1)

    list2 = []
    rowline = Datasheet1.row_values(n)
    # print(rowline)
    for i in rowline:
        if i != '':
            list2.append(i)
    # 将DTS跑出的数据处理成列表2
    list_dts = list2[3:] 

    if len(list_py) > len(list_dts):
        c = set(list_py) - set(list_dts)
    else:
        c = set(list_dts) - set(list_py)
    if len(c) != 0:
        print("第" + str(n) + "行" + " " + list2[1])
        print("脚本", list_py)
        print("DTS", list_dts)
        print("差异", list(c), end="")
        print("\n")
        print("-------------------")

'''关注点'''
#处理成什么数据格式
#字典顺序输出
#列表去空格处理
#对比 集合做差
需求2:对应字段值 一 一 对比
mport xlrd
import json
import difflib

# 将两个文件处理成字典
path1 = 'E:/data806/act.xls'
path2 = 'E:/data806/is0805.xls'

workbook1 = xlrd.open_workbook(path1)
Datasheet1 = workbook1.sheets()[0]

workbook2 = xlrd.open_workbook(path2)
Datasheet2 = workbook2.sheets()[0]

num1 = Datasheet1.nrows

for n in range(1, num1):
    dict1 = json.loads(Datasheet2.cell_value(n, 9))  # 这是一个多级字典
    dict11 = dict1['fd_risklv']

    name = Datasheet1.row_values(n)
    list = []
    list.append(
        {
            'fdrisk_detail1': name[5],
            'fdrisk_detail2': name[6],
            'fdrisk_detail3': name[7],
            'fdrisk_detail4': name[8],
            # 'fdrisk_detail5': name[9]
        }
    )

    dict22 = list[0]

    # 下面对两个字典相同key的value值对比做处理
    key1 = dict11.keys()
    key2 = dict22.keys()
    keys = set(key1) & set(key2)

    for my_key in keys:
        value1 = dict11[str(my_key)]
        value2 = dict22[str(my_key)]
        diff = difflib.SequenceMatcher(None, value2, value1).quick_ratio()

        if diff == 0.0:
            print("  " + "第" + str(n) + "行" + str(my_key) + "不同", "DTS是——" + str(value2), "脚本是--" + str(value1))
输出: