b、查找如下字典中所有的_id,输出结果为字典
输入:
{ "Result":{ "FailureCode":0,"StatusCode":0,"UserInfo":{ "EmployeeID":1214, "EnterpriseAccount":"158833" } }, "Value":{ "describe":{ "tenant_id":"158833", "api_name":"AccountObj", "_id":"5a320c9c2848bdbc06a58a88", "fields":{ "lock_rule":{ "label":"锁定规则", "type":"lock_rule", "is_required":false, "api_name":"lock_rule", "_id":"5f7301970ea8660001c8ebc3" } "UDMoney1__c":{ "type":"currency", "label":"成交金额", "api_name":"UDMoney1__c", "_id":"5d27f2a22848bdfa3adb4c32" } }, "isHaveDetailObj":true, "isInApprovalWhiteList":false, "supportTag":true } }}
输出:
{"Value._id":"5a320c9c2848bdbc06a58a88","Value.fields.lock_rule._id":"5f7301970ea8660001c8ebc3","Value.fields.lock_rule.UDMoney1__c":"5d27f2a22848bdfa3adb4c32"
c、对给定的两个字典dist1和字典dist2进行如下处理,输出字典dist1中存在,字典dist2中不存在的key,并输出字典dist2中存在,字典dist1中不存在的key。
dist1={"layoutVersion":"V3","objectDataId":"9b5302ffe1394cafb1f5b1c3b53e803c","objectDescribeApiName":"AccountObj","fromRecycleBin":false,"management":false,"serializeEmpty1":false}
dist2={"layoutVersion2":"V3","objectDataId":"9b5302ffe1394cafb1f5b1c3b53e803c","objectDescribeApiName":"AccountObj","fromRecycleBin":false,"management":false,"serializeEmpty":false}
你题目b应该用递归,代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
import json
jsonstr='''{
"Result":{
"FailureCode":0,
"StatusCode":0,
"UserInfo":{
"EmployeeID":1214,
"EnterpriseAccount":"158833"
}
},
"Value":{
"describe":{
"tenant_id":"158833",
"api_name":"AccountObj",
"_id":"5a320c9c2848bdbc06a58a88",
"fields":{
"lock_rule":{
"label":"锁定规则",
"type":"lock_rule",
"is_required":false,
"api_name":"lock_rule",
"_id":"5f7301970ea8660001c8ebc3"
},
"UDMoney1__c":{
"type":"currency",
"label":"成交金额",
"api_name":"UDMoney1__c",
"_id":"5d27f2a22848bdfa3adb4c32"
}
},
"isHaveDetailObj":true,
"isInApprovalWhiteList":false,
"supportTag":true
}
}
}'''
dict1=json.loads(jsonstr)
dict2={}
def op(dic,path):
for k,v in dic.items():
if k=="_id":
dict2[path+k] = v
if type(v)==dict:
op(v,path+k+".")
op(dict1,"")
print(dict2)
你题目C是用set集合,求差集:
dist1={"layoutVersion":"V3","objectDataId":"9b5302ffe1394cafb1f5b1c3b53e803c","objectDescribeApiName":"AccountObj","fromRecycleBin":False,"management":False,"serializeEmpty1":False}
dist2={"layoutVersion2":"V3","objectDataId":"9b5302ffe1394cafb1f5b1c3b53e803c","objectDescribeApiName":"AccountObj","fromRecycleBin":False,"management":False,"serializeEmpty":False}
s1=set(dist1)
s2=set(dist2)
print("字典dist1中存在,字典dist2中不存在的key:", s1-s2)
print("字典dist2中存在,字典dist1中不存在的key:", s2-s1)