首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用Lapply时出现服务不可用错误?

为什么使用Lapply时出现服务不可用错误?
EN

Stack Overflow用户
提问于 2020-12-28 11:38:59
回答 1查看 49关注 0票数 0

我正在使用spotifyr库,在那里我想找到多首曲目的音频特征。例如,我可以这样做,以便使用其id查找特定歌曲的音频特征。

代码语言:javascript
复制
analysis2 <- get_track_audio_features("2xLMifQCjDGFmkHkpNLD9h", 
                                 authorization = get_spotify_access_token())

昨天,我在下面写了一个函数,它获取数据帧中的所有曲目,找到所有曲目的音频特征,并将它们存储在列表中,运行良好。

代码语言:javascript
复制
get_analysis <- function(track_id)
{
  analysis <- get_track_audio_features(track_id, 
                                       authorization = get_spotify_access_token())  
}

tracks_list <- lapply(all_tracks$track.id, get_analysis)

现在我收到一个错误,说请求失败503,授权错误(track_id,get_track_audio_features= get_spotify_access_token()):服务不可用(HTTP503)。

我仍然能够找到特定歌曲的音频功能,所以我不确定哪种服务不可用。

EN

回答 1

Stack Overflow用户

发布于 2020-12-28 16:10:35

我怀疑你正在访问你的数据中的一首歌曲,但spotify拒绝了你的回复。您可以尝试添加一个错误捕获机制,以查看是哪种机制:

代码语言:javascript
复制
get_analysis <- function(track_id){
 tryCatch(
  expr = {
   get_track_audio_features(track_id, authorization = get_spotify_access_token())
 }, 
  error = function(e){
   print(track_id)
 }) -> analysis
 return(analysis)
}

tracks_list <- lapply(all_tracks$track.id, get_analysis)  

我查看了包的源代码,没有看到任何偷偷摸摸的速率限制问题,并且Web API页面将错误503显示为一个需要等待解决的通用错误(https://developer.spotify.com/documentation/web-api/)。因此,你也可以尝试添加10分钟的等待(我在Spotify的网站上找不到确切的等待时间):

代码语言:javascript
复制
get_analysis <- function(track_id){
 tryCatch(
  expr = {
   get_track_audio_features(track_id, authorization = get_spotify_access_token()) -> output
 return(output)
 }, 
  error = function(e){
   print(track_id)
   return(e)
 }) -> output
}

wait.function <- funciton(){
 Sys.sleep(600)
}

get_analysis_master <- function(all_tracks){
 k <- 1
 tracks_list <- list()
 for(track.id in all_tracks$track.id){
  get_analysis(track.id) -> output
  if(!inherits(output, "error")){
   tracks_list[[k]] <- output
   k <- k + 1
   } else {
    wait.function()
   }
 return(tracks_list)
 }
  
get_analysis_master(all_tracks) -> tracks_list
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65472754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档