我有一個字典如下:分組基於字典鍵
dict_details = {
'device.dummy.1.id': '1',
'device.dummy.2.id': '2',
'device.dummy.1.length': '202',
'device.dummy.2.length': '203',
'device.dummy.2.validity': '10001',
'device.dummy.1.validity': '10002',
'device.dummy.1.type': 'first',
'device.dummy.2.type': 'first'
}
我需要創建具有上述辭典的以下字典。這是組字典值與一些獨特的標識符將出現在我的字典。
{
'device.dummy.1': {
'id': '1',
'length': '202',
'validity': '10001',
'type': 'first'
},
'device.dummy.2': {
'id': '2',
'length': '203',
'validity': '10002',
'type': 'first'
}
}
我嘗試下面的代碼:
dict_details = {
'device.dummy.1.id': '1',
'device.dummy.2.id': '2',
'device.dummy.1.length': '202',
'device.dummy.2.length': '203',
'device.dummy.2.validity': '10001',
'device.dummy.1.validity': '10002',
'device.dummy.1.type': 'first',
'device.dummy.2.type': 'first'
}
s = {}
dummy = {}
for key, value in dict_details.items():
attrib = key.rsplit(".",1)[1]
macro = key.rsplit(".",1)[0]
s[attrib] = value
dummy[macro] = s
print(dummy)
卻是如下產生的輸出,即密鑰的價值越來越受已經存在的鍵覆蓋。
尋找相同的一些簡單的解決方法。
{
'device.dummy.1': {
'length': '202',
'type': 'first',
'id': '1',
'validity': '10001'
},
'device.dummy.2': {
'length': '202',
'type': 'first',
'id': '1',
'validity': '10001'
}
}
創建的字典裏面* *循環。字典是*可變的*。 – jonrsharpe
請看看提供的示例,如果我在循環內定義一個字典,我不會得到我期待的結果字典。 – sathis
'dummy [macro] = s'是它出錯的地方。嘗試'虛擬[宏] .update(s)'而不是 – Nullman