zoukankan      html  css  js  c++  java
  • python习题:写一个函数打印两个字典中不一样的key和value

    ok_req={
    "version": "9.0.0",
    "is_test": True,
    "store": "",
    "urs": "",
    "device": {
    "os": "android",
    "imei": "99001062198893",
    "device_id": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
    "mac": "02:00:00:00:00:00",
    "galaxy_tag": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
    "udid": "a34b1f67dd5797df93fdd8b072f1fb8110fd0db6",
    "network_status": "wifi"
    },
    "adunit": {
    "category": "VIDEO",
    "location": "1",
    "app": "7A16FBB6",
    "blacklist": ""
    },
    "ext_param":{
    "is_start" : 0,
    "vId":"VW0BRMTEV"
    }
    }
    not_ok={
    "version": "9.0.0",
    "is_test": True,
    "urs": "",
    "store": "",
    "device": {
    "os": "android",
    "imei": "99001062298893",
    "device_id": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
    "mac": "02:00:00:00:00:00",
    "galaxy_tag": "CQliMWEyYTEzNTYyYzk5MzJmCTJlNmY3Zjkx",
    "udid": "a34b1f67dd5797da93fdd8b072f1fb8110fd0db6",
    "network_status": "wifi"
    },
    "adunit": {
    "category": "VIDEO",
    "location": "1",
    "app": "7A16FBB6",
    "blacklist": ""
    },
    "ext_param": {
    "is_start": 0,
    "vid": "VW0BRMTEV"
    }
    }

    def compare(d1,d2):
    d1_keys = set(d1.keys())
    d2_keys = set(d2.keys())
    if d1_keys & d2_keys:
    for k in d1:
    d1_values = d1.get(k)
    d2_values = d2.get(k)
    # if d2_values:
    if type(d1_values) == dict:
    for k1 in d1_values:
    d1_values_1 = d1_values.get(k1)
    d2_values_1 = d2_values.get(k1)
    # if d2_values_1:
    if set(d1_values.keys()) & set(d2_values.keys()):
    if d1_values_1 != d2_values_1:
    print('d1中%s的值不一样,d1中%s的值是%s,d2中%s的值是:%s'%(k,k1,d1_values_1,k1,d2_values_1))
    else:
    print('d1中%s的值中不一致的key是'%(set(d1_values.keys())-d2_values.keys()))
    elif d1_values!=d2_values:
    print('d1和d2不一样的key是:%s,d1的value是:%s,d2的value是%s'%(k,d1_values,d2_values))
    else:
    print('d1和d2不一样的key是:%s'%(d1_keys - d2_keys))

    compare(ok_req,not_ok)
  • 相关阅读:
    计算机硬件介绍
    SC-控制Windows服务的命令
    SQL Server 2008中的Service SID 介绍
    内置系统账户:Local system/Network service/Local Service 区别
    用于sql server启动的账户
    sql server常见服务
    oracle和sql server的区别(1)
    架构设计学习(一)
    web项目分层设计
    封装继承多态
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8310463.html
Copyright © 2011-2022 走看看