读取嵌套的json文件

时间:2015-04-16 15:54:03

标签: python 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中的

将会有文件的所有内容,而不知道名称是什么。你知道吗? 提前谢谢!

2 个答案:

答案 0 :(得分:2)

您不需要知道名字。 json.loads()将此转换为Python数据结构,在本例中为嵌套dicts。 Dicts有一个keys()方法给出了密钥。所以:

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

答案 1 :(得分:1)

您可以使用.keys()方法从j变量中的词典中提取所有键,如下所示:

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