通过json(python)导航

2024-09-26 17:41:20 发布

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

我试图浏览json文件,但无法正确解析“headliner”节点

这是我的JSON文件:

{  
   "resultsPage":{  
      "results":{  
         "calendarEntry":[  
            {
              "event":{  
                 "id":38862824,
                 "artistName":"Raphael",
               },
               "performance":[  
                  {  
                     "id":73632729,
                     "headlinerName":"Top-Secret",
                  }
               }
            ],
            "venue":{  
               "id":4285819,
               "displayName":"Sacré"
            }
         }
      }
   }

以下是我试图做的:

for item in data ["resultsPage"]["results"]["calendarEntry"]:
    artistname = item["event"]["artistName"]
    headliner = item["performance"]["headlinerName"]

我不明白为什么它适用于“艺人名称”,但它不适用于“头条新闻名称”。谢谢你的帮助和解释


Tags: 文件名称eventidjson节点performanceitem
2条回答

请注意您的performance键:

"performance":[  
                  {  
                     "id":73632729,
                     "headlinerName":"Top-Secret",
                  }
               }
            ],

您发布的json格式不正确。假设结构如下所示:

"performance":[  
                      {  
                         "id":73632729,
                         "headlinerName":"Top-Secret",
                      }

              ],

你可以做:

for i in item:
    i["headlinerName"]

或者正如@UltraInstitute所建议的:

item["performance"][0]["headlinerName"]

这里有几个问题。首先,您的JSON格式不正确。你的方括号不匹配。也许你的意思是这样的?我假设“calendarEntry”在这里是一个列表,其他所有内容都是一个对象。列表通常是复数形式,即“日历条目”

{  
   "resultsPage": {
      "results": {  
         "calendarEntries": [  
            {
              "event": {  
                 "id": 38862824,
                 "artistName": "Raphael"
               },
               "performance": {
                  "id": 73632729,
                  "headlinerName": "Top-Secret"
               },
               "venue": {  
                  "id": 4285819,
                  "displayName": "Sacré"
               }
            }
         ]
      }
   }
}

相关问题 更多 >

    热门问题