我是新來的Python和目前使用python 2. 我建了一個多維的字典,看起來像這樣:打印多維字典,重複鍵
targets = {house: {N: {red: {A:1}, garden: {N: 6}}}
{great: {A: {very: {Adv:12}, so: {Adv: 5}, a: {Det: 3}}}}
etc.
基本上總會有4的嵌套字典,但的條目'第三'字典({red:{},horse:{}等)可以由任意數量的項目組成。因此,字典中的項目數量會有所不同。
現在,我喜歡將字典寫入文件,最好寫入一個csv文件。輸出文件應以製表符分隔的方式顯示所有條目,每行以最外鍵開始。例如:
house N red A 1
house N garden N 6
great A very Adv 12
great A so Adv 5
great A a Det 3
我知道,有很多關於打印多維字典的帖子,但我還沒有找到一個(還),其中最外層的關鍵是在每個迭代中打印。我試圖包含爲多維詞典的其他問題提供的代碼片段,但迄今爲止效果不佳。
我好不容易纔寫字典到字典中的格式正常的.txt文件與此for循環:
for target in targets_dict:
results.write(str(target) + str(targets_dict[str(target)]) + '\n')
或使用csvwriter寫入到一個CSV文件(我知道也有DictWriter,我只是無法得到它的正常工作):
w = csv.writer(results, delimiter = '\t')
for target in targets_dict.iteritems():
w.writerow(target)
很顯然,這是非常基本的和迭代不進入內字典。
嘗試已發佈到相關問題的修改解決方案(recursively traverse multidimensional dictionary, dimension unknown)始終駐留在'期望的字符緩衝區對象'錯誤中。
for for k,v in sorted(targets_dict.items(),key=lambda x: x[0]):
if isinstance(v, dict):
results.write(" ") + ("%s %s") % (k, v)
每一個建議或提示都被讚賞,可以幫助我理解所有這些背後的邏輯,以便我能夠弄明白。
回覆。變量'targets':這是一個列表的列表,還是最外面的字典中唯一的關鍵字? – Eugene
都在最外面的字典中的鍵唯一 –