Json解析python错误

时间:2016-05-12 08:16:34

标签: python json

我有以下词典。我想循环这个键和值 即冰/冷物品,打印“价值”

plot(ct, tp_args = list(beside = TRUE), gp = gpar(fontsize = 33))

试过这个:

[
      {
        "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

2 个答案:

答案 0 :(得分: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 :(得分: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