我需要一組嵌套字典{a:{} {b:{},{c:{}}}},其中a,b和c是鍵。我已經嘗試了下面的代碼。要將多個字典作爲值插入到單個鍵中
from collections import defaultdict
def dictizeString(string,dictionary) :
while string.startswith('/'):
string = string[1:]
parts = string.split('/',1)
if len(parts)>1:
branch = dictionary.setdefault(parts[0],[dict()])
dictionary[parts[0]].append(dict())
dictizeString(parts[1], branch)
else:
if dictionary.has_key(parts[0]):
dictionary[parts[0]]=dict()
else:
dictionary[parts[0]]=[dict()]
dictionary[parts[0]].append(dict())
d={}
dictizeString('/a/b/c/d', d)
print d
執行此代碼會導致錯誤「列表」對象沒有屬性「setdefault」。該代碼適用於第一次迭代(即對於a),但是會爲第二次迭代(即b)拋出上述錯誤。
附加功能適用於代碼的最後6行中的else部分。我試圖在if情況下使用相同的邏輯,但它引發錯誤。
你怎麼想的輸出看時打印Ð怎麼樣? – dopstar
@dopstar我希望它能像這樣{a:{} {b:{},{c:{}}}}在打印d上。約書亞在我的代碼中的小改變是我所需要的。 – TheFallenOne