我是R的初學者(仍然在Coursera上進行「R編程」課程),我試圖練習R將一些簡單的代碼從Python移植到R.R中的Python「json.dumps()」的等價物?
當前我試圖請致電KairosDB database進行API調用。爲了進行查詢,我需要使用json.dumps()
(來自json
本機庫)對Python對象進行編碼,但是我已經搜索了很多,但我沒有得到如何使用R和它的jsonlite
庫。我甚至不知道我是否正確創建了JSON對象,但這是我在某些搜索中找到的。
我編寫的代碼在Python 3(from this repo):
寫R中3.2.3import requests
import json
kairosdb_server = "http://localhost:8080"
# Simple test
query = {
"start_relative": {
"value": "4",
"unit": "years"
},
"metrics": [
{
"name": "test",
"limit": 10000
}
]
}
response = requests.post(kairosdb_server + "/api/v1/datapoints/query", data=json.dumps(query))
print("Status code: %d" % response.status_code)
print("JSON response:")
print(response.json())
我當前的代碼:
library(httr)
library(jsonlite)
kairosdb_server <- 'http://localhost:8080'
query <- serializeJSON(toJSON('
"start_relative": {
"value": "4",
"unit": "years"
},
"metrics": [
{
"name": "test",
"limit": 1000
}
]
'))
url <- paste(kairosdb_server, '/api/v1/datapoints/query')
response <- POST(url, body = query, encode = 'json')
print(paste("Query status code: ", response$status_code))
print(paste("JSON response: \n", content(response, type = 'application/json')))
如果我跑,我得到了以下錯誤:
我在做什麼錯了?
你能告訴我們你得到的Python調用'json.dumps(query)'和R調用'serializeJSON(toJSON('...'))'嗎?當我嘗試Python調用時,我得到'{「metrics」:[{「limit」:10000,「name」:「test」}],「start_relative」:{「unit」:「years」,「value」 :「4」}}''。 R電話給我一些更復雜的東西。如果我將'query'設置爲R'list',然後調用'toJSON(query,auto_unbox = TRUE)',我確實會得到類似於Python輸出的東西。最後一位解包1個元素的向量。 – Dthal