“TypeError:列表索引必须是整数或切片,而不是 str”当我试图读取 json

这是我的代码


j = """

{

  "kind": "youtube#videoListResponse",       

  "items": [

    {

      "kind": "youtube#video",

      "id": "IEEhzQoKtQU",

      "statistics": {

        "viewCount": "171938",

        "likeCount": "5856",

        "dislikeCount": "38",

        "favoriteCount": "0",

        "commentCount": "368"

      }

    }

  ],

  "pageInfo": {

    "totalResults": 1,

    "resultsPerPage": 1

  }

}

"""

    

js = json.loads(j)

    

js = js["items"]

    

js = js["statistics"]

    

print(js["viewCount"])

我是 json 的新手,我试图从这个 json 字符串中检索 viewCount。但是每次我运行代码时都会收到此错误:


js = js["statistics"]

TypeError: list indices must be integers or slices, not str

有没有人有办法解决吗?


慕少森
浏览 119回答 1
1回答

扬帆大鱼

那是因为items列表确实是列表,而不是字典。在你的 json 中:[    {      "kind": "youtube#video",      "id": "IEEhzQoKtQU",      "statistics": {        "viewCount": "171938",        "likeCount": "5856",        "dislikeCount": "38",        "favoriteCount": "0",        "commentCount": "368"      }    }  ]只有一个项目,但你有一个列表。如果您想要列表中的第一项,您可以使用js[0]["statistics"]. 或者迭代它们,for item in js.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python