在JSON列表中循环

2024-05-15 00:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将JSON数组导入python,想知道是什么触发了我的错误。在这个例子中,我使用了一个冰淇淋的例子

我的JSON有多个用例:

{
  "cones": 1,
  "toppings": [
    {
      "chocolate_chips": "yes",
      "cherries": 1,
      "sprinkles": "rainbow"
    },
    {
      "chocolate_chips": "yes",
      "cherries": 3,
      "sprinkles": "chocolate"
    },
    {
      "chocolate_chips": "yes",
      "cherries": 2,
      "sprinkles": "rainbow"
    }
  ],
  "whipped_cream": [
    "lots",
    "some",
    "none"
  ]
}

以及

{
  "cones": 1,
  "cherries": 3,
  "chocolate_chips": "Yes",
  "sprinkles": "chocolate",
  "whipped_cream": [
    "Lots",
    "Some",
    "None"
  ]
}

注意,一个JSON有一个名为toppings的列表,其中包含字段chocolate chips、cherries和spreaks,而另一个根本不包含该列表,只包含值。我正在运行这个脚本,试图分配变量,无论在何种情况下都能工作,下面是我的代码

ice_cream = json.loads(json)

for i in ice_cream:
    if ice_cream['toppings'] is not None:
        toppings = (i.get('toppings'))
        for t in toppings:
            chocolate_chips = (t.get('chocolate_chips'))
            cherries:(t.get('cherries'))
            sprinkles:(t.get('sprinkles'))
    else: 
        chocolate_chips = (i.get('chocolate_chips'))
        cherries:(i.get('cherries'))
        sprinkles:(i.get('sprinkles'))
    cones = (i.get('cones'))
    whipped_cream = (i.get('whipped_cream'))

我得到这个错误

list indices must be integers, not str

Tags: jsonget错误例子yestoppingscreamice

热门问题