Django фильтрует определенные атрибуты из ответа API
Я работаю с TMDB API и хочу получить конкретное видео из словаря видео, которое является главным трейлером фильма.
movie_video_request = requests.get("https://api.themoviedb.org/3/movie/" + str(movie_id) + "/videos?api_key=" + TMDB_API_KEY)
movie_video_results = movie_video_request.json()
movie_videos = movie_video_results['results']
newDict = dict()
for key,value in movie_videos.items():
if key == 'name' and value == 'Official Trailer':
newDict[key] = value
return render(request, 'Movie Details.html', {'newDict ':newDict })
Мой ответ API
"results": [
{
"iso_639_1": "en",
"iso_3166_1": "US",
"name": "Walking Corpses Clip",
"key": "GGe_h2MWMrs",
"site": "YouTube",
"size": 1080,
"type": "Clip",
"official": true,
"published_at": "2022-01-29T17:00:39.000Z",
"id": "61f77629bb105700a0b16a3f"
},
{
"iso_639_1": "en",
"iso_3166_1": "US",
"name": "Official Trailer",
"key": "JfVOs4VSpmA",
"site": "YouTube",
"size": 1080,
"type": "Trailer",
"official": true,
"published_at": "2021-11-17T01:30:05.000Z",
"id": "61945b8a4da3d4002992d5a6"
},
{
"iso_639_1": "en",
"iso_3166_1": "US",
"name": "The New Spider-Man Title is…",
"key": "iqyPvdsOWKk",
"site": "YouTube",
"size": 1080,
"type": "Teaser",
"official": true,
"published_at": "2021-02-24T17:44:20.000Z",
"id": "60378fdcd132d60040a45d96"
}
]
Я хочу, чтобы мой результат был таким, как в официальном трейлере
{key": "JfVOs4VSpmA"}
чтобы я мог поместить его в тег <a href>
<a href="https://www.youtube.com/watch?v={{ newDict.value }}">
<p> Watch Trailer </p>
</a>
Я получаю ошибку
Exception Value: 'list' object has no attribute 'items'
Если вы присмотритесь, то увидите, что movie_videos - это список. Если вы хотите выполнить итерацию по нему, просто отбросьте .items().
В дальнейшем нужно немного изменить цикл, потому что мы проходим через список словарей, а не через словарь словарей.
Это может выглядеть примерно так:
newDict = dict()
for movie in movie_videos:
if movie['name'] == 'Official Trailer':
newDict['key'] = movie['key']
movie_videos - это список dicts, а не dict.
for result in movie_videos:
if result['name'] == 'Official Trailer':
newDict['key'] = result['key']