在Python中迭代(JSON?)映射

时间:2016-07-04 09:52:10

标签: python json

我有这样的数据结构:

sample_map= {'key1': {'internal_key1': ['value1']},
             'key2': {'internal_key2': ['value2']},
                 }

我想在每一行key1和key2上迭代throgh。我想得到' internal_key1'的价值。和' value_1'变量。

我试过这种方式:

for keys in sample_map.keys():
    for value in sample_map[keys]:
        #get internal_keys and values

我该怎么做?有人可能会告诉我这个数据结构和使用?

3 个答案:

答案 0 :(得分:2)

for item in sample_map.values():
   for k, v in item.items():
      print k, v

答案 1 :(得分:1)

这称为字典(类型dict)。它确实类似于JSON结构,尽管JSON是一种格式,其中构建字符串以表示特定的数据结构,dict是数据结构(可以转换为JSON格式的字符串)。

无论如何,这一行 - for value in sample_map[keys]:无效。要获得与键相关联的值,您只需执行value = sample_map[keys]。在此示例中,dict s将分配给val。这些将是内部dict s({'internal_key1': ['value1']}等等)。

要访问内部密钥,请拨打.keys()的{​​{1}}:

value

此外,当使用for循环时,不需要for keys in sample_map.keys(): value = sample_map[keys]: for internal_key in value.keys(): internal_value = value[internal_key] ,它将自动使用,因此您的代码可能如下所示:

dict.keys()

答案 2 :(得分:0)

以下内容如何:

for k,v in sample_map.iteritems():
    print k
    for k1,v1 in v.iteritems():
        print k1,v1[0]

这将打印以下内容:

key2
internal_key2 value2
key1
internal_key1 value1