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)