无法遍历字典

can't iterate through dictionary

我有一个 JSON-File,里面有一些数据。现在我尝试提取一些数据,但我总是得到错误
回溯(最后一次调用): 文件“C:\Users\Foo\PycharmProjects\youtube_stats\youtube_videos.py”,第 29 行,位于 标题 = vid["标题"] 类型错误:字符串索引必须是整数

代码如下:

x= open("results/yt.json", mode="r")
vids = json.load(x)
for vid in vids[channel_id]["video_data"]:
    vid_id = vid
    title = vid["title"]
    date = vid["publishedAt"]
    likes = vid["likeCount"]
    views = ["viewCount"]
    comment_int =["commentCount"]

这是JSON-File:

{
    "Foo": {
        "channel_statistics": {
            "viewCount": "20496906",
            "subscriberCount": "220000",
            "hiddenSubscriberCount": false,
            "videoCount": "393"
        },
        "video_data": {
            "video_id": {
                "publishedAt": "2022-04-22T11:34:30Z",
                "channelId": "Foo",
                "title": "Foo",
                "description": "Foo",
                "thumbnails": {
                    "default": {
                        "url": "Foo",
                        "width": 120,
                        "height": 90
                    },
                    "medium": {
                        "url": "Foo",
                        "width": 320,
                        "height": 180
                    },
                    "high": {
                        "url": "Foo",
                        "width": 480,
                        "height": 360
                    }
                },
                "channelTitle": "Foo", 
                "categoryId": "24",
                "liveBroadcastContent": "none",
                "localized": {
                    "title": "Foo",
                    "description": "Foo"
                },
                "defaultAudioLanguage": "de",
                "viewCount": "54991",
                "likeCount": "886",
                "favoriteCount": "0",
                "commentCount": "1276",
                "duration": "PT42M34S",
                "dimension": "2d",
                "definition": "hd",
                "caption": "false",
                "licensedContent": true,
                "contentRating": {},
                "projection": "rectangular"
            },

我真的找不到解决办法,虽然它可能很简单...

正如其他评论中提到的那样,运行 for vid in vids[channel_id]["video_data"]: 将遍历字典键。如果您想检查内容,您可以使用键访问值,或使用 dict.values() 遍历字典值。

例如1

for vid in vids[channel_id]["video_data"]:
    title = vids[channel_id]["video_data"][vid]["title"]

例如2

for vid in vids[channel_id]["video_data"].values():
    title = vid["title"]

查看 Python Docs 了解更多信息。