我試圖為每個流派獲取 50 首歌曲,并將它們放在一個帶有流派名稱的資料框中,但出現以下錯誤。
Error : object 'res' not found
我知道 undefined 物件導致了問題,但我不知道如何處理它。你能解釋一下嗎?
**Language:R, Environment: Exploratory Public**
genres <- RETRY('GET', url = 'https://api.spotify.com/v1/recommendations/available-genre-seeds', query = list(access_token = get_spotify_access_token(), limit=150), quiet = TRUE) %>% content()
m <- do.call(rbind,lapply(genres$genre, function(x) if(is.null(x)) NA else c(x)))
genres_df <- as.data.frame(m)
colnames(genres_df) <- c("genre")
get_genre_track <- function(genre){
track_check <- RETRY('GET', url = paste0("https://api.spotify.com/v1/search?query=genre:",genre), query = list(type="track",limit = 50, offset = 0, access_token = get_spotify_access_token()), quiet = TRUE) %>% content()
track_count <- 50
df <- map_df(1:length(res$tracks$items), function(this_row) {
tryCatch({
this_track <- res$tracks$items[[this_row]]
name <- this_track$name
genre <- genre
list(name = name, genre = genre)
}, error = function(e){
NULL
})
})
}
tracks_df <- lapply(genres_df$genre, get_genre_track) %>% bind_rows()
tracks_df
}
(需要的庫安裝和用戶資訊省略)
uj5u.com熱心網友回復:
在您上面鏈接的腳本中,res定義如下:
res <- RETRY('GET', url = paste0("https://api.spotify.com/v1/search?query=genre:",genre), query = list(type="track",limit = 50, offset = numoffset, access_token = get_spotify_access_token()), quiet = TRUE) %>% content()
而在您的代碼中,您似乎已將該變數重命名為track_check:
track_check <- RETRY('GET', url = paste0("https://api.spotify.com/v1/search?query=genre:",genre), query = list(type="track",limit = 50, offset = 0, access_token = get_spotify_access_token()), quiet = TRUE) %>% content()
所以不要把它稱為res$tracks$items, but track_check$tracks$items。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/351840.html
上一篇:型別錯誤:從API獲取時無法讀取未定義的屬性(讀取“地圖”)
下一篇:找不到錯誤-異步函式-回傳太快
