如何解决R vs.Python中的POST请求
我在Python中运行了POST请求,并能够通过使用以下代码来解码文本数据:
import requests
import pandas as pd
import json
import numpy as np
url = "SomeURL"
payload = "{\r\n \"tagCsv\": \"LU_HIST_SVR.CPR01_BPTransSlope,LU_HIST_SVR.CPLEM_PTransSlope,LU_HIST_SVR.C875_5_DPTTransSlope,LU_HIST_SVR.C919_6_DPTTransSlope\",\r\n \"interval\": 2.88,\r\n \"frequency\": \"mi\",\r\n \"samplingMethod\": \"last\",\r\n \"quality\": \"GOOD*\",\r\n \r\n \"startDate\": [\r\n 2020,\r\n 6,\r\n 1,\r\n 21,\r\n 20\r\n ],\r\n \"endDate\": [\r\n 2020,\r\n 7,\r\n 23,\r\n 20\r\n ]\r\n}\r\n"
headers = {
'Content-Type': 'application/json','Authorization': 'Bearer token code...'
}
response = requests.request("POST",url,headers=headers,data = payload)
test_string = response.text.encode('utf8')
上面的代码工作正常,我可以看到结果,最终可以将所需的信息转换为数据框。
我需要的是将以上代码转换为R
。我在R中将以下代码编写为:
library(httr)
library(jsonlite)
library(data.table)
url <- "SomeURL"
params <- list()
params$variables <- '[{
"tagCsv": "LU_HIST_SVR.CPR01_BPTransSlope,LU_HIST_SVR.C919_6_DPTTransSlope","interval": 2.88,"frequency": "mi","samplingMethod": "last","quality": "GOOD*","startDate": [
2020,6,1,21,20
],"endDate": [
2020,7,23,20
]
}]'
headers = c('Content-Type'="application/json",'Authorization'= "Bearer token code")
r_POST <- httr::POST(url,body = params,add_headers(headers),encode = "json",verbose())
r_POST
http_status(r_POST)
在使用“ R”代码的情况下,我也收到了“成功”通知,但是我像在Python代码“ response.text.encode('utf8')
”中一样,仍然坚持“如何”提取数据集?
解决方法
因此,问题出在params
定义中
正确的语法应该是(请注意,我不需要$variables
)
params <- list()
params <- '{
"tagCsv": "LU_HIST_SVR.CPR01_BPTransSlope,LU_HIST_SVR.CPLEM_PTransSlope,LU_HIST_SVR.C875_5_DPTTransSlope,LU_HIST_SVR.C919_6_DPTTransSlope","interval": 2.88,"frequency": "mi","samplingMethod": "last","quality": "GOOD*","startDate": [
2020,6,1,21,20
],"endDate": [
2020,7,23,20
]
}'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。