R与Python中的POST请求

R与Python中的POST请求,python,r,post,httr,Python,R,Post,Httr,我用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_

我用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        1,\r\n        21,\r\n        20\r\n    ],\r\n    \"endDate\": [\r\n        2020,\r\n        6,\r\n        7,\r\n        23,\r\n        21,\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.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,
    1,
    21,
    20
    ],
  "endDate": [
    2020,
    6,
    7,
    23,
    21,
    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)
库(httr)
图书馆(jsonlite)
库(数据表)

url因此,问题出在
params
定义中 正确的语法应该是(注意我不需要
$variables


params R不像Python那样有点符号。您的Python似乎在说,将编码为文本的响应作为UTF-8。您是否尝试过查看对象
r\u POST
并查看其结构?R通常默认为UTF-8,因此您可以尝试
R\u POST$response
,或者如果数据是原始的,您可以尝试
fromJSON(rawToChar(R\u POST$response$content))
。但是我们需要查看r\u POST对象的结构才能确定。请尝试
content(r\u POST,as=“text”,encoding=“UTF-8”)
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,
    1,
    21,
    20
    ],
  "endDate": [
    2020,
    6,
    7,
    23,
    21,
    20
    ]
}'