r中出现意外的字符json错误

时间:2015-09-25 19:23:06

标签: json r

我收到以下错误消息,此代码旨在将Instagram帖子读入r。其他代码在前20个帖子中成功阅读,但Instagram希望您请求“next_url”以获得更多帖子。我查看了这个错误的类似答案,但在我的代码中找不到拼写错误。想知道它是否可能来自需要调整的API。我是R的新手,希望我能适当地解释一下。我非常感谢任何帮助。

Error in fromJSON(getURL(paste(next_url, token, sep = "")), unexpected.escape = "keep") : 
  unexpected character: p
In addition: Warning message:
In fromJSON(getURL(paste(next_url, token, sep = "")), unexpected.escape = "keep") :
  unexpected escaped character '\ ' at pos 26. Keeping value.
  username <- "XXXX"
    if(grepl(received_profile$username,username))
  {
    user_id <- received_profile$id
    media <- fromJSON(getURL(paste(next_url,token,sep="")),unexpected.escape = "keep")
    df1 = data.frame(no = 1:length(media$data))

    for(i in 1:length(media$data))
    {
      #comments
      df1$comments[i] <-media$data[[i]]$comments$count

      #likes:
      df1$likes[i] <- media$data[[i]]$likes$count

      #date
      df1$date[i] <- toString(as.POSIXct(as.numeric(media$data[[i]]$created_time), origin="1970-01-01"))
    }
    df <- rbind(df, df1)    
  }else
  {
    print("Error: User not found!")
  }

2 个答案:

答案 0 :(得分:6)

我可以通过使用从Instagram返回的JSON响应中的next_url对象中提取pagination的代码扩展您的代码段来重现您的问题。

使用rjson::fromJSON解析JSON响应时,我会收到类似

的错误
Error in rjson::fromJSON(js) : unexpected character: i

但是,使用RJSONIO::fromJSON解析完全相同的字符串工作正常!此字符串还使用在线JSON验证器验证为正确的JSON。

这强烈指出rjson::fromJSON中的错误。您现在可能想要使用RJSONIO包。

不幸的是,这些Instagram的回复非常大。我将看看我是否可以将JSON输出删除为可管理的内容,以便我可以在此处发布详细信息。 (我试图避免链接到外部网站上的数据。)

我怀疑Instagram用户名存在编码问题。

答案 1 :(得分:0)

使用RJSONSIO和Rcpp,你应该能够得到你想要的东西:

media1 <- fromJSON(getURL(paste(url,token,sep="")
next_url <- media1$pagination[1]
media2 <- fromJSON(getURL(next_url))

无需在fromJSON()

中指定其他参数