httr GET 操作无法访问 JSON 响应
httr GET operation unable to access JSON response
我正在尝试从我的 R 脚本中的 API 调用访问 JSON 响应。 API 调用成功,我可以在控制台中查看 JSON 响应。但是,我无法访问其中的任何数据。
示例代码段是:
require(httr)
target <- '#trump'
sentence<- 'Donald trump has a wonderful toupe, it really is quite stunning that a man can be so refined and elegant'
query <- url_encode(sentence)
target <- gsub('#', '', target)
endpoint <- "https://alchemy.p.mashape.com/text/TextGetTargetedSentiment?outputMode=json&target="
apiCall <- paste(endpoint, target, '&text=', query, sep = '')
resp <-GET(apiCall, add_headers("X-Mashape-Key" = sentimentKey, "Accept" = "application/json"))
stop_for_status(resp)
headers(resp)
str(content(resp))
content(resp, "text")
我遵循了 CRAN 的 httr 快速入门指南中的示例 (here) as well as this stack。
不幸的是,我不断收到 "unused parameters 'text' in content()" 或“接受 class 的 'response.' 的 content() 没有定义。有人有什么建议吗?PS headers 将打印,resp$content 将打印原始比特流
扩展评论,您需要在对 content(...)
的调用中明确设置内容类型。由于您的代码不可重现,这里是一个使用人口普查局地理编码器的示例(returns 一个 json 响应)。
library(httr)
url <- "http://geocoding.geo.census.gov/geocoder/locations/onelineaddress"
resp <-GET(url, query=list(address="1600 Pennsylvania Avenue, Washington DC",
benchmark=9,
format="json"))
json <- content(resp, type="application/json")
json$result$addressMatches[[1]]$coordinates
# $x
# [1] -77.038025
#
# $y
# [1] 38.898735
假设您实际上得到了 json 响应,并且它的格式正确,只需使用 content(resp, type="application/json")
就可以了。
我正在尝试从我的 R 脚本中的 API 调用访问 JSON 响应。 API 调用成功,我可以在控制台中查看 JSON 响应。但是,我无法访问其中的任何数据。
示例代码段是:
require(httr)
target <- '#trump'
sentence<- 'Donald trump has a wonderful toupe, it really is quite stunning that a man can be so refined and elegant'
query <- url_encode(sentence)
target <- gsub('#', '', target)
endpoint <- "https://alchemy.p.mashape.com/text/TextGetTargetedSentiment?outputMode=json&target="
apiCall <- paste(endpoint, target, '&text=', query, sep = '')
resp <-GET(apiCall, add_headers("X-Mashape-Key" = sentimentKey, "Accept" = "application/json"))
stop_for_status(resp)
headers(resp)
str(content(resp))
content(resp, "text")
我遵循了 CRAN 的 httr 快速入门指南中的示例 (here) as well as this stack。
不幸的是,我不断收到 "unused parameters 'text' in content()" 或“接受 class 的 'response.' 的 content() 没有定义。有人有什么建议吗?PS headers 将打印,resp$content 将打印原始比特流
扩展评论,您需要在对 content(...)
的调用中明确设置内容类型。由于您的代码不可重现,这里是一个使用人口普查局地理编码器的示例(returns 一个 json 响应)。
library(httr)
url <- "http://geocoding.geo.census.gov/geocoder/locations/onelineaddress"
resp <-GET(url, query=list(address="1600 Pennsylvania Avenue, Washington DC",
benchmark=9,
format="json"))
json <- content(resp, type="application/json")
json$result$addressMatches[[1]]$coordinates
# $x
# [1] -77.038025
#
# $y
# [1] 38.898735
假设您实际上得到了 json 响应,并且它的格式正确,只需使用 content(resp, type="application/json")
就可以了。