2016-05-12 71 views
1

我有以下字典。我想通过这个键循环和值 即在冰/冷,打印“值”项目Json解析python错误

[ 
     { 
     "ice/cold": [ 
      "vanilla", 
      "hotchoc", 
      "mango", 
      "banana" 
     ] 
     }, 
     { 
     "fire/hot": [ 
      "barbecue", 
      "hotsalsa", 
      "sriracha", 
      "kirikiri" 
     ] 
     }, 
     { 
     "friendly/mild": [ 
      "ketchup", 
      "mustard", 
      "ranch", 
      "dipster" 
     ] 
     } 
    ] 

试过这样:

data='*above set*' 
for key in data.items(): 
    print value 

,但给我的错误

AttributeError: 'list' object has no attribute 'items' 

回答

3

你拥有的数据结构有点奇怪。你没有一个字典,你有一个列表,每个字母都有一个单独的键,它本身包含一个列表。你可以这样做:

for item in data: 
    for key, value in item.items(): 
     print value 

但更好的方法是改变结构,所以你只能有一个字典:

{ 
    "ice/cold": [ 
     "vanilla", 
     "hotchoc", 
     "mango", 
     "banana" 
    ], 
    "fire/hot": [ 
     "barbecue", 
     "hotsalsa", 
     "sriracha", 
     "kirikiri" 
    ], 
    "friendly/mild": [ 
     "ketchup", 
     "mustard", 
     "ranch", 
     "dipster" 
    ] 
    } 
1

这里data实际上是一个名单没有字典 和各项指标名单是一个字典,以便只是遍历列表中的所有元素,看看它是否对应于期望的字典

这里是代码

data= [ 
    { 
    "ice/cold": [ 
     "vanilla", 
     "hotchoc", 
     "mango", 
     "banana" 
    ] 
    }, 
    { 
    "fire/hot": [ 
     "barbecue", 
     "hotsalsa", 
     "sriracha", 
     "kirikiri" 
    ] 
    }, 
    { 
    "friendly/mild": [ 
     "ketchup", 
     "mustard", 
     "ranch", 
     "dipster" 
    ] 
    } 
] 
for items in data: 
for key, value in items.iteritems(): 
    if key == "ice/cold": 
     print value