簡體   English   中英

Spotipy(特別是 sp.track())運行時間太長

[英]Spotipy (sp.track() specifically) takes too long to run

我正在嘗試提取大約 18,000 首歌曲的發行數據、明確標記和流行度得分。 我想 append 這些結果到我的數據框

最初,我試過這個。 -

for i,track in enumerate(df['uri']):
     release_dates.append(sp.track(track)['album']['release_date']) 

但是我運行的時間太長,所以我認為問題出在數據集的大小上。

然后我試着在每個 50 首歌曲的子集上運行它 -

updated_popularity, explicit_flags, release_dates = [], [], []

for i in range(0,10000,50):
    print("entered first for loop")
    results = sp.track(df['uri'][i])
    print("got track results")
    for i, t in enumerate(results):
        print("Second loop: Track = ", t)
        updated_popularity.append(t['popularity'])
        explicit_flags.append(t['explicit'])
        release_dates.append(t['album']['release_date'])
    print("Exited second loop\n")

但是,我的代碼現在已經運行了幾個小時但沒有結果。 我已經堅持了一段時間,任何幫助將不勝感激!

使用 sp.track s (uri_list) 一次請求 50軌道要快得多

# function to divide a list of uris (or ids) into chuncks of 50.
chunker = lambda y, x: [y[i : i + x] for i in range(0, len(y), x)]

# using the function
uri_chunks = chunker(uri_list, 50)

updated_popularity, explicit_flags, release_dates = [], [], []

for chunk in uri_chunks:
    print("entered first for loop")
    results = sp.tracks(chunk)
    print("got tracks results")
    for t in results["tracks"]:
        updated_popularity.append(t['popularity'])
        explicit_flags.append(t['explicit'])
        release_dates.append(t['album']['release_date'])
    print("Exited second loop\n")

print(updated_popularity)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM