我已经在R中编写了以下代码以开始使用数据请求API。这是一个普通的Web服务JSON API。
library(RJSONIO)
library(RCurl)
library(httr)
r <- POST("http://api.scb.se/OV0104/v1/doris/sv/ssd/START/PR/PR0101/PR0101A/KPIFastM2",
body = '{ "query": [], "response": { "format": "json" } }')
stop_for_status(r)
a<-content(r, "text", "application/json", encoding="UTF-8")
cat(a, file = "test.json")
x<-fromJSON(file("test.json", "r"))
mydf<-do.call(rbind, lapply(x$data, data.frame))
colnames(mydf)<-c("YearMonth", "CPI")
基本上,它使用httr初始化了URL的获取请求,然后通过fromJSON将生成的JSON数据转换为R结构。JSON请求如下所示:
{ "query": [], "response": { "format": "json" } }
确实,我的代码像我希望的那样将数据放入了data.frame中,但是它非常冗长,我拒绝相信所有这些行对于实现所需结果都是必需的。所需的结果是mydf
data.frame。
因此,我的问题是:将数据从Web服务获取到data.frame的最短,最正确的方法是什么?
干杯,迈克尔
有两个问题。一种是您没有使用jsonlite :-)另一种是您的JSON源似乎为blob加上了使JSON无效的U+FEFF
Byte order
Mark
字符。RFC7159说:
实现不得在JSON文本的开头添加字节顺序标记。为了互操作性,解析JSON文本的实现可以忽略字节顺序标记的存在,而不是将其视为错误。
因此scb.se无法正确格式化其JSON。无论哪种方式,请尝试以下操作:
library(jsonlite)
library(httr)
req <- POST("http://api.scb.se/OV0104/v1/doris/sv/ssd/START/PR/PR0101/PR0101A/KPIFastM2",
body = '{ "query": [], "response": { "format": "json" } }')
stop_for_status(req)
json <- content(req, "text")
# JSON starts with an invalid character:
validate(json)
json <- substring(json, 2)
validate(json)
# Now we can parse
object <- jsonlite::fromJSON(json)
print(objects)
问题内容: 我有这个JSON字符串。我想将其发布到服务器(即使用POST方法)。如何在Android中完成? JSON字串: 如何形成此JSON数组并将其发布到服务器? 问题答案: 我自己做的。 这就是我们如何将JSON数据发送到服务器。
问题内容: data = { ‘ids’: [12, 3, 4, 5, 6 , …] } urllib2.urlopen("http://abc.com/api/posts/create”,urllib.urlencode(data)) 我想发送POST请求,但是其中一个字段应该是数字列表。我怎样才能做到这一点 ?(JSON?) 问题答案: 如果您的服务器期望POST请求为json,则您需要添加标
所以我有一个php页面,我试图让我的GoLang客户端通过POST请求进行通信。php脚本通过key:value进行输入,key:value是message:hello world,希望添加多个键。它适用于我的python脚本,但不适用于golang,所以这里是我到目前为止在golang中的内容。 尝试运行上述代码时收到的错误消息: php脚本是: 我能得到的最佳回复如下:
如何使用方法将数据检索到数据库中,我创建了一个从外部服务api检索数据的方法-可以显示该方法,但我在创建将检索到的数据发送到数据库的适当方法时遇到了问题。 方法从外部api检索数据: 我准备了一个存储库和一个实体来创建一个数据库(创建了数据库,但没有填充数据) 我目前创建了一个POST方法,但它不允许检索和保存数据(逻辑不好?)。 DTO型号: 允许您保存数据的服务。 因此,我有一个问题,就是如何
问题内容: 我有JSON值列表(实际上是一个文本文件,其中每一行都是一个JSON对象)。像这样: 某些值可能会丢失(例如,第一项没有“工作”值,第二项没有“教育”和“年龄”)。 我需要在R中创建数据框,并将所有缺少的列值填充为NA(如果至少一行中存在唯一名称的字段)。如何轻松实现呢? 我已经完成的工作-我安装了“ rjson”包,并将这些行解析为R列表。假设lines变量是line的字符向量。 “
我需要在get请求中以JSON格式获取数据,数据应为以下格式: 但数据以以下形式返回,响应为字符串: 代码: 如何使用Rest Assured在get请求中获取JSON格式?