Python比较2个字典有哪些值不一致


def get_arbitrage_contract_detail_num():
sql = """select A,count(A) from tablename group by A """
data = query_db(sql)
key = [row[0] for row in data]
value = [row[1] for row in data]
arbitrage_contract_detail=dict(zip(key, value))
#如上三句可以优化成下面一句
    arbitrage_contract_detail ={row[0]:row[1] for row in data}

# print(json.dumps(arbitrage_contract_detail,indent=4,ensure_ascii=False))
return arbitrage_contract_detail


def txt_dict(file_name):
with open(file_name, 'r', encoding='utf -8') as f:
s = []
for row in f:
p = r'load contractDetails ([\w\-\.]+),(\d)'
tmp = re.findall(p, row)
s.append(tmp)
key = [x[0][0] for x in s]
value = [x[0][1] for x in s]
dict_result = dict(zip(key, value))

#以上三句可以合并为下面一句:
        dict_result = {x[0][0]: x[0][1] for x in s}
        return dict_result


def compare(dict_file, dict_db):
for k, v in dict_file.items():
if int(v) != dict_db[k]:
print(k, '不相等','文件中为',v, '数据库为',dict_db[k])


def main():
file_name = r'D:\123\123.txt'
dict_file = txt_dict(file_name)
dict_db = get_arbitrage_contract_detail_num()
compare(dict_file, dict_db)


if __name__ == '__main__':
main()
posted @ 2020-06-23 16:40  小丸点  阅读(773)  评论(0编辑  收藏  举报