Python - Как индексировать элементы в словаре? - PullRequest
0 голосов
/ 31 марта 2020

Я кодирую API YouTube, теперь пытаюсь получить плейлист канала с идентификатором загруженного видео. Я получил этот код:

from apiclient.discovery import build

api_key = *im not showing this*
youtube = build('youtube', 'v3', developerKey=api_key)

channel_id = 'UCLtX-6aeUi-Av6ocKcDwQYA'
request = youtube.channels().list(id=channel_id,
                                  part='contentDetails')
res = request.execute()
print(res['items'])

Я получаю следующий результат:

[
   {
      "kind":"youtube#channel",
      "etag":"\"ksCrgYQhtFrXgbHAhi9Fo5t0C2I/OqBagYqEiOTpJzaoMetqts7kYwM\"",
      "id":"UCLtX-6aeUi-Av6ocKcDwQYA",
      "contentDetails":{
         "relatedPlaylists":{
            "uploads":"UULtX-6aeUi-Av6ocKcDwQYA",
            "watchHistory":"HL",
            "watchLater":"WL"
         }
      }
   }
]

Теперь, очевидно, я должен был бы получить эти загрузки из relatedPlaylists из contentDetails. Поскольку все эти результаты похожи на список с одним элементом, и внутри есть словари, я не могу сделать ничего, кроме res ['items'] (я пробовал res ['items'] ['contentDetails'] ['relatedPlaylists'] ['загружает'], но это дает мне следующую ошибку: TypeError: list indices must be integers or slices, not str) Я знаю, что это должно быть так просто, как кажется, но я не могу найти способ сделать это. Я думал об использовании от l oop до l oop через res ['items'], но я не думаю, что это было бы хорошим решением. Может быть, я ошибаюсь, хотя я надеюсь, что кто-то может помочь Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...