2015-04-16 160 views
0

我有一個JSON文件是這樣的:閱讀嵌套JSON文件

{ 
    "men_rankings": { 
    "abe": ["cat", "bea", "ada"], 
    "bob": ["ada", "cat", "bea"], 
    "cal": ["ada", "bea", "cat"] 
    }, 

    "women_rankings": { 
    "ada": ["abe", "cal", "bob"], 
    "bea": ["bob", "abe", "cal"], 
    "cat": ["cal", "abe", "bob"] 
    } 
} 

,我想在兩個列表中男性和女性的名字(我在python工作)保存。 (我只是想這個:mens = ['abe', 'cal', 'bob'])。其他用戶可能會給出完全不同的名字,所以我必須找到一種方法來保存名字,而不知道男士的名字是abe,cal,bob。如果我用這樣的方式:

import json 
import sys 
f = open(sys.argv[2], 'r') 
j = json.load(f) 
f.close() 

變量j會有文件的不知道名字是什麼的全部內容。你有什麼想法嗎? 在此先感謝!

+0

我覺得'women = j [「women_rankings」] .key()'和'men = j [「men_rankings」] .key()'給出了你的想法 – valentin

回答

1

你可以只提取該類型的字典所有按鍵與.keys()方法您j變量中,因爲這樣的:

men = j['men_rankings'].keys() 
women = j['women_rankings'].keys() 
2

你不需要知道的名字。 json.loads()將其轉換爲Python數據結構,在此情況下爲嵌套字典。字典有一個keys()方法,可以提供密鑰。所以:

mens = j['men_rankings'].keys() 
womens = j['women_rankings'].keys()