2014-02-22 167 views
0

我目前有采用這種方式格式化的詞典:將嵌套字典轉換爲csv?

{state: {region: {place: [name, address]}}} 

有很多地區,地方等的...這可能是一個非常糟糕的主意寫在這種方式收集信息的程序,但現在已經太晚了。有沒有人有一個想法,我怎麼會可能開始通過這個龐大的詞典挖掘並把它變成類似:

name, state, region, address, 
name, state, region, address,... 

即使

name, state, address, 
name, state, address,... 

就足夠了。試圖讓函數對它進行排序,我感到困惑不解,甚至有可能嗎?

+0

三個嵌套for循環應該讓你開始? – thefourtheye

+0

看看這個問題:http://stackoverflow.com/questions/13406875/write-a-dictionary-of-dictionaries-to-csv-in-python – Djizeus

+0

https://stackoverflow.com/questions/43910282/嵌套字典對CSV-的excel?RQ = 1 – Ankur

回答

0

我不知道我有你的數據結構是正確的,但也許這將幫助:

>>> data = {"California": {"North": {"San Francisco": ["Bruce Lee", "123 Kickass Drive"], "Berkeley": ["Smokey Bowler", "123 High Street"]}, "South": {"San Diego": ["Juan Valdez", "123 Cafe Blvd."]}}} 
>>> data 
{'California': {'North': {'San Francisco': ['Bruce Lee', '123 Kickass Drive'], 'Berkeley': ['Smokey Bowler', '123 High Street']}, 'South': {'San Diego': ['Juan Valdez', '123 Cafe Blvd.']}}} 
>>> for state, other in data.items(): 
... for region, other2 in other.items(): 
...  for place, info in other2.items(): 
...   name, address = info 
...   print ", ".join([name, state, region, address]) 
... 
Bruce Lee, California, North, 123 Kickass Drive 
Smokey Bowler, California, North, 123 High Street 
Juan Valdez, California, South, 123 Cafe Blvd. 

使之成爲真正的csv是難題了一步,但我會留下一個給你。

0

python csv lib中存在一些函數。我沒有回答你的情況,只是展示了一個使用圖書館的例子。

import csv 

somedict = dict(raymond='red', rachel='blue', matthew='green') 

with open('mycsvfile.csv','wb') as f: 
    w = csv.writer(f) 
    w.writerows(somedict.items()) 

將每行寫入一個鍵/值。你必須適應一個反覆詞典。

相關問題