【问题标题】:Best way to read JSON strings from Instagram API with R使用 R 从 Instagram API 读取 JSON 字符串的最佳方法
【发布时间】:2014-08-15 21:25:17
【问题描述】:

到目前为止,我尝试了不同的方法,包括 fromJSON(readLines(url),unexpected.escape="keep")fromJSON(getURL(url),unexpected.escape="keep")。 我现在偶然发现的是,如果我的请求如下所示:

url = "https://api.instagram.com/v1/users/142121981/?client_id=****************************" (填写您的客户 ID)结合 readLines(),到目前为止对我来说效果更好,我收到错误:

Error in file(con, "r") : cannot open the connection
In addition: Warning message:
In file(con, "r") : cannot open: HTTP status was '400 BAD REQUEST'

如果你在浏览器中打开这个 URL,你仍然会得到一个 JSON 字符串:

{"meta":{"error_type":"APINotFoundError","code":400,"error_message":"this user does not exist"}}

告诉我,具有此 ID 的用户不存在。

我想要的是 readLines() 的替代品,它仍然会读取这个 JSON 字符串而不是抛出错误。

希望这是足够的解释!如果不问我任何你需要知道的事情!

【问题讨论】:

  • 您尝试过httrRCurl 软件包吗?您可以使用这些库来调整您的请求并明确指定标头等。确保您形成了 API 指定的确切请求类型。
  • 我将深入研究这些库。但这是 API 想要看到的请求。如果我使用现有的用户 ID,它可以正常工作!
  • 我明白了。 Readlines 只是不希望 200 以外的任何状态代码有用。这些其他库允许对返回的内容进行更多控制。
  • 是的,似乎是这样。再次感谢!

标签: json r api instagram


【解决方案1】:

感谢 MrFlick 的提示,我潜入了httrpackage。 我的解决方案(或最佳实践)是使用

response = fromJSON(rawToChar(GET(url)))

即使用户不存在,这也会返回一个 R 对象。

【讨论】:

  • 谢谢。我正在使用fromJSON(rawToChar((GET(url1))$content))
【解决方案2】:

我使用 RCurl、httr 和 RJSONIO 包并且:

fromJSON(getURL()))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2015-11-17
    • 2023-03-06
    相关资源
    最近更新 更多