我希望将2个字典组合用于数据标准化...第一个字典包含远程数据标题,以及标题应转换为...
Dict 1 = {
"timestamp": "TimeStamp",
"name": "SiteName",
"energy": "PowerExport",
}
Dict 2 = {
"TimeStamp": "13-02-2017 12:34:05",
"PowerExport": 32,
"SiteName": "Site 104",
}
目的是合并这两个词典,使其看起来像这样:
Dict 1 = {
"timestamp": "13-02-2017 12:34:05",
"name": "Site 104",
"energy": 32,
}
因此,目的是将{X:Y},{Y:Z}转换为{X:Z}。
答案 0 :(得分:1)
这可以通过单个词典理解来完成:
new_dict = {k: dict_2.get(v) for k, v in dict_1.iteritems()}
如果在dict_2中找不到密钥,则使用get
来确保它不会失败;如果发生这种情况,该值将为None。 Dicts没有订单,所以不用担心。
答案 1 :(得分:0)
另一种选择,如果你想要一个不使用任何进口的单线,是:
{key:Dict2[value] for key,value in Dict1.items() if Dict2.has_key(value)}
答案 2 :(得分:0)
或者没有词典理解:
dict1 = {
"timestamp": "TimeStamp",
"name": "SiteName",
"energy": "PowerExport"
}
dict2 = {
"TimeStamp": "13-02-2017 12:34:05",
"PowerExport": 32,
"SiteName": "Site 104"
}
d = {}
for k in dict1:
if dict1[k] in dict2:
d[k] = dict2[dict1[k]]