在Python中使用多个数组浏览JSON

2024-05-16 03:59:10 发布

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

我试图使用python遍历JSON,但无法访问“mbid”节点。我只想打印第一个“mbid”节点。你知道吗

我的职责是:

def get_data():
    newJsonx = dict()
    for item in data["resultsPage"]["results"]["calendarEntry"]:
        mbid = item["event"]["performance"][0]["artist"]["identifier"][0]["mbid"]

通过这个函数,我得到了这个错误:IndexError: list index out of range

但是当我做的时候

def get_data():
    newJsonx = dict()
    for item in data["resultsPage"]["results"]["calendarEntry"]:
        mbid = item["event"]["performance"][0]["artist"]["identifier"]

而且print(mbid),我得到了一个正确的答案:

"identifier": [
  {
   "mbid": "6655955b-1c1e-4bcb-84e4-81bcd9efab30"
  },
  {
   "mbid": "1b1b1b1b-1c1d"
  }
]

这意味着我对数据没有问题。也许我把第二个数组弄错了?你知道吗

以下是JSON结构的示例:

{
  "resultsPage": {
    "status": "ok",
    "results": {
      "calendarEntry": [
        {
          "reason": {

          },
          "event": {
            "performance": [
              {
                "id": 72641494,
                "displayName": "Arnalds",
                "artist": {
                  "id": 590465,
                  "identifier": [
                    {
                      "mbid": "6655955b-1c1e-4bcb-84e4-81bcd9efab30"
                    },
                    {                   
                      "mbid": "1b1b1b1b-1c1d"
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  }
}

谢谢你的时间


Tags: eventjsondataget节点artistdefperformance
1条回答
网友
1楼 · 发布于 2024-05-16 03:59:10
def get_data():
    newJsonx = dict()
    for item in data["resultsPage"]["results"]["calendarEntry"]:
        performance=item["event"]["performance"]
        if performace:
          identifier=performace[0]["artist"]["identifier"]
          if identifier:
            mbid=identifier[0]["mbid"]

相关问题 更多 >