Python 函数将特定数据追加到字典中

Python 函数将特定数据追加到字典中,python,Python,我有一个包含Spotify歌曲详细信息的.json文件,存储在播放列表中。(歌曲名称、艺术家、专辑名称等信息) 例如: print(data['playlists'][999]['tracks'][43]['track_name']) print(data['playlists'][999]['tracks'][43]['artist_name']) 返回: Cosmic Angel - Acoustic From Capitol Studios Grizfolk 一些数据如下所示: 'a

我有一个包含Spotify歌曲详细信息的.json文件,存储在播放列表中。(歌曲名称、艺术家、专辑名称等信息)

例如:

print(data['playlists'][999]['tracks'][43]['track_name'])
print(data['playlists'][999]['tracks'][43]['artist_name'])
返回:

Cosmic Angel - Acoustic From Capitol Studios
Grizfolk
一些数据如下所示:

 'album_uri': 'spotify:album:3yHHbz0wapmu6xF82vHkCU',
     'duration_ms': 209280,
     'album_name': 'Rewind'},
    {'pos': 93,
     'artist_name': 'Thomas Rhett',
     'track_uri': 'spotify:track:5kNe7PE09d6Kvw5pAsx23n',
     'artist_uri': 'spotify:artist:6x2LnllRG5uGarZMsD4iO8',
     'track_name': 'Die A Happy Man',
     'album_uri': 'spotify:album:4ykbJPI8MPscFzROE8dqLy',
     'duration_ms': 227426,
     'album_name': 'Tangled Up'},
    {'pos': 94,
     'artist_name': 'Thomas Rhett',
     'track_uri': 'spotify:track:4O1CExxinEpKZi3861NlTK',
     'artist_uri': 'spotify:artist:6x2LnllRG5uGarZMsD4iO8',
     'track_name': 'Get Me Some Of That',
     'album_uri': 'spotify:album:2ZHYOFW5giX6a4n5eqTnUB',
     'duration_ms': 187400,
     'album_name': 'It Goes Like This'},
我想创建一个函数,将所有曲目名称和艺术家名称附加到字典中

我试过这个:

def artiname(p,t):
    d = {}
    for i in range(p):
        for j in range(t):
            artist = data['playlists'][p]['tracks'][t]['artist_name']
            d['artist']=artist
            track = data['playlists'][p]['tracks'][t]['track_name']
            d['track']=track
然而,这仅输出:

{'artist': 'Grizfolk'}

相反,我想确保它在整个播放列表中循环,以长度为p*t的字典结束。

我很好奇,如果你不打印任何内容,为什么还会有任何输出。请显示您的确切代码,以及如何调用函数Hi Tristan,字典只能有一个“艺术家”值。你可能在寻找一系列字典,每首歌一本。同样,您几乎肯定需要一个for循环,而不是两个嵌套的for循环。请编辑您的问题并包含代码,以显示您调用函数时使用的参数,这样我们就可以理解:p和t是什么,以及为什么要使用所有的组合?@Alexis感谢您的帮助。这就是我想要的。我写了这篇文章,它工作了:(顺便问一下,我如何正确地显示代码?
song_playlist={}用于枚举中的I,n(数据[“playlists”):song_playlist[I]=[]用于n[“tracks”]:song_playlist[I]。追加(m[“track_name”])def make_songlist(x):d={“playlist 0”,song:x[0]}df=pd。范围(1,len(x)中n的数据帧(d)//2) :d={“playlist”:n,“song”:x[n]}df2=pd.DataFrame(d)df=df.append(df2,ignore_index=True)return df data=make_songlist(song_playlist)
Hi Tristan,您不能在注释中显示代码块——它们应该很短。如果此代码是您问题的解决方案,您可以将其作为“自我回答”发布,并接受它以记录您的问题已经解决。但是您应该知道,您误用了字典数据结构,将整数作为键是没有意义的
song_playlist
应该是曲目列表的列表,而不是曲目列表的字典。@Alexis谢谢您的帮助!我对编码和stackoverflow还不熟悉。我很好奇,如果你不打印任何东西,为什么会有任何输出。请显示您的确切代码,以及如何调用函数Hi Tristan,字典只能有一个“艺术家”值。你可能在寻找一系列字典,每首歌一本。同样,您几乎肯定需要一个for循环,而不是两个嵌套的for循环。请编辑您的问题并包含代码,以显示您调用函数时使用的参数,这样我们就可以理解:p和t是什么,以及为什么要使用所有的组合?@Alexis感谢您的帮助。这就是我想要的。我写了这篇文章,它工作了:(顺便问一下,我如何正确地显示代码?
song_playlist={}用于枚举中的I,n(数据[“playlists”):song_playlist[I]=[]用于n[“tracks”]:song_playlist[I]。追加(m[“track_name”])def make_songlist(x):d={“playlist 0”,song:x[0]}df=pd。范围(1,len(x)中n的数据帧(d)//2) :d={“playlist”:n,“song”:x[n]}df2=pd.DataFrame(d)df=df.append(df2,ignore_index=True)return df data=make_songlist(song_playlist)
Hi Tristan,您不能在注释中显示代码块——它们应该很短。如果此代码是您问题的解决方案,您可以将其作为“自我回答”发布,并接受它以记录您的问题已经解决。但是您应该知道,您误用了字典数据结构,将整数作为键是没有意义的
song_playlist
应该是曲目列表的列表,而不是曲目列表的字典。@Alexis谢谢您的帮助!我不熟悉编码和堆栈溢出。