2016-11-04 3 views
-1

Я хочу получить оценку рейтинга некоторых фильмов и не знаю, как исправить проблему с «индексом вне границ». Вот мой код.

movieScoreapi <- function(x) { 
api <- "https://api.douban.com/v2/movie/search?q={" 
url <- paste(api, x, "}", sep = "")  
res <- getURL(url)  
reslist <- fromJSON(res)  
name <- reslist$subjects[[1]]$title  
score <- reslist$subjects[[1]]$rating$average  
return(list(name = name, score = score)) 
} 
movieScoreapi("Life is beautiful") 

И ошибка как:

Error in reslist$subjects[[1]] : subscript out of bounds 
+0

Вы правильно прочитали документацию api? – vagabond

ответ

0

1) Вы используете неправильную конечную точку.

2) Строка URL, которую вы строите, неверна. Посмотрите на его выходе на копирования вставки этого в браузере: https://api.douban.com/v2/movie/search?q= {Жизнь% 20Is% 20Beautiful}

Правильная конечная точка является: GET/v2/фильм/предмет/1764796

Если вы хотите использовать тот же конечную точку, как у вас есть, и получить ее содержимое, сделайте следующее:

install.packages("httr") 
require(httr) 

movieScoreapi <- function(x) { 
api <- "https://api.douban.com/v2/movie/search?q=" 
    url <- paste(api, x, sep = "")  
    res <- GET(url)  
    reslist <- content(res)  
    df_contents <- rbind(unlist(content(res))) 
    return(df_contents) 
} 
movieScoreapi("Dracula") 
    count start total title        
[1,] "20" "0" "0" "搜索 \"LifeIsBeautiful\" 的结果" 
Смежные вопросы