我目前正在解析JSON,作为一个简单的例子,它看起来是这样的:
字典1:
data:
0:
tag "importanttagone"
value 233
1:
tag "importanttagtwo"
value 234字典2:
data:
0:
name "Important Tag One"
tag "importanttagone"
1:
name "Important Tag Two"
tag "importanttagtwo"所以本质上我想要的是显示名称和相关的值。
Expected Output:
Name: Important Tag On
Value: 233 有没有办法比较字典中的两个标签,然后得到与标签在同一关键字中的名称?
发布于 2017-11-20 05:16:30
d1 = {
"data":{
0: {
"tag": "importanttagone",
"value": 233
},
1: {
"tag": "importanttagtwo",
"value": 234
}
}
}
d2 = {
"data":{
0: {
"tag": "importanttagone",
"name": "Important Tag One"
},
1: {
"tag": "importanttagtwo",
"name": "Important Tag Two"
}
}
}
d1_flat = {v['tag']: v['value'] for _, v in d1['data'].items()}
d2_flat = {v['tag']: v['name'] for _, v in d2['data'].items()}
result = {}
for k, v in d1_flat.items():
name = d2_flat.get(k, None)
if name:
result[name] = v
print(result)输出:
{'Important Tag One': 233, 'Important Tag Two': 234}发布于 2017-11-20 05:12:31
如果相同的标签在字典中具有相同的键:
[(d1[key]['name'], d2[key]['value']) for key in d1 if key in d2]发布于 2017-11-20 05:13:29
通过迭代两个字典,可以逐个元素地比较这两个字典:
for k1 in dict1:
for k2 in dict2:
if dict1[k1]['tag'] == dict2[k2]['tag']
print('Name : ' + dict[k1]['name'])
print('Value : ' + dict[k2]['value'])https://stackoverflow.com/questions/47381900
复制相似问题