2015-12-16 67 views
1

我有一個包含的信息,你可以在附件中看到一個JSON文件: Json File使用從JSON文件信息創建一個字典

我需要一些幫助建立一個「流派字典」每個主任像這個:{類型名稱:Number}其中「Number」對應於導演「創建」的屬於該類型的電影的數量。

E.g.檢查「Sidney Lumet」字典應該是這樣的: {u'Drama':2,u'War':1,u'Adventure':1,u'Thriller':2,u'Crime':1}

由於在文件中,你可以讀到:

"Before the Devil Knows You're Dead;2007": { 
    "DIRECTORS": [ 
     "Sidney Lumet" 
    ], 
    "GENRES": [ 
     "Crime", 
     "Drama", 
     "Thriller" 
    "Fail-Safe;1964": { 
    "DIRECTORS": [ 
     "Sidney Lumet" 
    ], 
    "GENRES": [ 
     "Adventure", 
     "Drama", 
     "Thriller", 
     "War" 

我解釋,我需要在標題中錯誤的東西。 我的問題不是關於如何檢索信息(我知道關於json模塊,我知道如何訪問它的元素),但我需要幫助爲每個導演創建特定字典。

+3

[在Python中解析來自JSON文件的值]可能的重複(http://stackoverflow.com/questions/2835559/parsing-values-from-a-json-file-in-python) – Dan

+0

請參閱pythons標準庫,有一個夢幻般的json庫 – hetepeperfan

+0

我已經在使用json庫來訪問每個元素(導演,流派和ofc標題,我無法做的是創建特定的「流派」字典 - 我的不好寫了一個錯誤的標題)。 – Kron

回答

2

它不是python而是算法問題。所有在這裏pyhton相關的是

with open('file.json') as f:  
    data = json.load(f) 

然後,你需要經過的所有電影和計算每個流派如:

directors_dict = {} 
for film_name, film in data.iteritems(): 
    for dir in film['DIRECTORS']: 
     if not dir in directors_dict: 
      directors_dict[dir] = {} 
     for genr in film['GENRES']: 
      if not genr in directors_dict[dir]: 
       directors_dict[dir][genr] = 0 
      directors_dict[dir][genr] += 1 

print(directors_dict) 

PS:我沒有測試此代碼,我甚至不知道到底是什麼格式(您的文件需要從谷歌驅動器訪問)。您應該使用print()或調試器來調試和糾正錯誤。

+0

是的你是對的,反正我的問題是算法和關於python(我不知道我能否自己寫Python代碼)。謝謝! – Kron