Я создаю загрузчик YouTube для своего проекта, поэтому я играл с API YouTube. У меня проблема с помещением данных в словарь, например, это данные:
result = {'kind': 'youtube#searchListResponse', 'etag': '5JMmuS5CVq2hYbanuVXwLKfuwXk', 'nextPageToken': 'CAEQAA', 'regionCode': 'US', 'pageInfo': {'totalResults': 1000000, 'resultsPerPage': 1}, 'items': [{'kind': 'youtube#searchResult', 'etag': '_quYyNz6XPXmAaWfx4pkGm_ZXRA', 'id': {'kind': 'youtube#video', 'videoId': 'Jn09UdSb3aA'}, 'snippet': {'publishedAt': '2020-03-04T12:00:04Z', 'channelId': 'UCyOfqgtsQaM3S-VZnsYnHjQ', 'title': 'The Best of Chopin', 'description': 'Buy the MP3 album on the Official Halidon Music Store: Listen to our playlist on Spotify: ialClassics Order “100 ...', 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/Jn09UdSb3aA/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/Jn09UdSb3aA/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/Jn09UdSb3aA/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'HALIDONMUSIC', 'liveBroadcastContent': 'none', 'publishTime': '2020-03-04T12:00:04Z'}}]}
search = {}
search_data = []
for item in result['items']:
title = item['snippet']['title']
description = item['snippet']['description']
video = item['id']['videoId']
search['title'] = title
search['description'] = description
search['videoId'] = video
search_data.append(search)
И мне трудно добавлять все данные в словарь с «названием» в качестве ключа. Итак, я хочу, чтобы словарь выглядел так:
{'The Best of Chopin':
{'description': 'Buy ... : AYhx Listen .... ',
'videoId': 'Jn09UdSb3aA'},
'The Next Title':
{'description': 'blah blah',
'videoId':'121212121'},
'The Third one.... and goes on
Я читал несколько статей о вложенном словаре, но я вижу много повторений, но не то, как его создать. Я пытался немного поиграть, но не смог этого сделать. Единственное близкое решение, которое я пробовал, - это использовать «перечисление» в цикле for для создания с ключом, но я пытаюсь использовать заголовок в качестве ключа. Как я могу это сделать? Любые советы будут оценены.
извините что опечатка!!






Делай это так:
search[title] = {}
search[title]['description'] = description
search[title]['videoId'] = video
Или проще search[title] = {'description': description, 'videoId': video}
Спасибо за совет! Но как я могу добавить к search_data? Я попробовал сейчас с search_data.append(search) , но, похоже, у меня есть только первые данные...
В нем есть все элементы из вашей переменной result, возможно, ввод result неполный .. @sarahkim, вам не нужно ничего добавлять в список, в вашем словаре все равно будут все элементы
О боже, я тупой, лол, ты прав, я только что создал только для 1 выхода, хахаха
search_result = {'kind': 'youtube#searchListResponse', 'etag': '5JMmuS5CVq2hYbanuVXwLKfuwXk', 'nextPageToken': 'CAEQAA', 'regionCode': 'US', 'pageInfo': {'totalResults': 1000000, 'resultsPerPage': 1}, 'items': [{'kind': 'youtube#searchResult', 'etag': '_quYyNz6XPXmAaWfx4pkGm_ZXRA', 'id': {'kind': 'youtube#video', 'videoId': 'Jn09UdSb3aA'}, 'snippet': {'publishedAt': '2020-03-04T12:00:04Z', 'channelId': 'UCyOfqgtsQaM3S-VZnsYnHjQ', 'title': 'The Best of Chopin', 'description': 'Buy the MP3 album on the Official Halidon Music Store: Listen to our playlist on Spotify: ialClassics Order “100 ...', 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/Jn09UdSb3aA/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/Jn09UdSb3aA/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/Jn09UdSb3aA/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'HALIDONMUSIC', 'liveBroadcastContent': 'none', 'publishTime': '2020-03-04T12:00:04Z'}}]}
search_data = {}
for item in search_result['items']:
title = item['snippet']['title']
description = item['snippet']['description']
video = item['id']['videoId']
temp = {}
temp['description'] = description
temp['videoId'] = video
search_data[title] = temp
print(search_data)
Выход:
{'The Best of Chopin': {'description': 'Buy the MP3 album on the Official Halidon Music Store: Listen to our playlist on Spotify: ialClassics Order “100 ...', 'videoId': 'Jn09UdSb3aA'}}
Что такое
search_result? Это должно бытьresult?