我有一本字典:
dict1 = {
'conf1' : {'subconf11' : True, 'subconf12' : False},
'conf2' : False,
'conf3' : {'subconf31' : True, 'subconf32' : False, 'subconf33' : False},
'conf4' : 'On'
}
我想將其展平為元組串列,例如:
list1 = [
('conf1',('subconf11',True)),
('conf1',('subconf12',False)),
('conf2',False),
('conf3',('subconf31',True)),
('conf3',('subconf32',False)),
('conf3',('subconf33',False)),
('conf4','On')
]
我試過類似的東西:
primary_conf_list = list(dict1.keys())
list2 = [(i,list[dict1[i].items()]) for i in primary_conf_list]
但可以理解的是,對于那些值不是字典而是布林值或字串值的人來說,它會引發我的錯誤。例如dict1['conf2']和dict1['conf4']。
這是確切的錯誤訊息:
AttributeError: 'bool' object has no attribute 'items'
請幫助我實作這一目標。
uj5u.com熱心網友回復:
您應該檢查該值是否為字典。如果是,請使用嵌套回圈將元素添加到每個專案的結果中。
list2 = []
for key, val in dict1.items():
if isinstance(val, dict):
for subkey, subval in val.items():
list2.append((key, (subkey, subval)))
else:
list2.append(key, val)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/330467.html
上一篇:串列中的幾個字典到資料框的列
下一篇:將資料幀拆分為字典字典
