【问题标题】:Spotipy - Listing only track and artists names in a playlistSpotipy - 在播放列表中仅列出曲目和艺术家姓名
【发布时间】:2020-08-25 04:22:47
【问题描述】:

大家好,提前感谢您的帮助:)

谁能帮我理解如何使用下面的代码,它显示指定播放列表的数据,并让它只显示艺术家和曲目名称?我已经玩弄了几个小时的 API 文档,但我一直无法理解它。现在,当它显示数据时,它会给我一堆乱七八糟的数据。另外,请注意,我在此代码的 client_id 和 Secret 部分中放置了虚拟值。

from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
import json


PlaylistExample = '37i9dQZEVXbMDoHDwVN2tF'

cid = '123'
secret = 'xyz'


auth_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret)
sp = spotipy.Spotify(auth_manager=auth_manager)




playlist_id = 'spotify:user:spotifycharts:playlist:37i9dQZEVXbJiZcmkrIHGU'
results = sp.playlist(playlist_id)
print(json.dumps(results, indent=4))

【问题讨论】:

    标签: python-3.x spotify spotipy


    【解决方案1】:

    这样的东西有用吗?:

    print("Song - Artist - Album\n")
    
    for item in results['tracks']['items']:
        print(
            item['track']['name'] + ' - ' +
            item['track']['artists'][0]['name'] + ' - ' +
            item['track']['album']['name']
        )
        
    

    您的输出将如下所示:

    Song - Artist - Album
    
    ONLY - ZHU - ONLY
    Bad - 2012 Remaster - Michael Jackson - Bad 25th Anniversary
    Orion - Rodrigo y Gabriela - Rodrigo y Gabriela
    Shape of You - Ed Sheeran - ÷ (Deluxe)
    

    或者,您可以根据 Spotify 返回的结构创建自己的结构,但只保留您需要的结构:

    result_dict = {
        'tracks': {
            'items': [],
            'limit': 100,
            'next': None,
            'offset': 0,
            'previous': None,
            'total': 16
        },
        'type': 'playlist',
        'uri': '<playlist_uri>'
    }
    

    还有从上方进入'items' 的轨道结构:

    track_dict = {
        'track': {
            'album': {
                'name': item['track']['album']['name'],
            },
            'artists': [{
                'name': item['track']['artists'][0]['name'],
            }],
            'name': item['track']['name'],
        }
    }
    

    然后一一迭代插入:

    for item in results['tracks']['items']:
        track_dict = {
            'track': {
                'album': {
                    'name': item['track']['album']['name'],
                },
                'artists': [{
                    'name': item['track']['artists'][0]['name'],
                }],
                'name': item['track']['name'],
            }
        }
        # Append the track dict structure to your results dict structure
        result_dict['tracks']['items'].append(track_dict)
    

    打印result_dict时出现这个结果:

    {
      'tracks': {
        'items': [{
          'track': {
            'album': {
              'name': 'ONLY'
            },
            'artists': [{
              'name': 'ZHU'
            }],
            'name': 'ONLY'
          }
        }, {
          'track': {
            'album': {
              'name': 'Bad 25th Anniversary'
            },
            'artists': [{
              'name': 'Michael Jackson'
            }],
            'name': 'Bad - 2012 Remaster'
          }
        }, {
          'track': {
            'album': {
              'name': 'Rodrigo y Gabriela'
            },
            'artists': [{
              'name': 'Rodrigo y Gabriela'
            }],
            'name': 'Orion'
          }
        }, {
          'track': {
            'album': {
              'name': '÷ (Deluxe)'
            },
            'artists': [{
              'name': 'Ed Sheeran'
            }],
            'name': 'Shape of You'
          }
        }],
        'limit': 100,
        'next': None,
        'offset': 0,
        'previous': None,
        'total': 4
      },
      'type': 'playlist',
      'uri': '<playlist_uri>'
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多