如何将常规数据帧转换为JSON?
我见过在堆栈上进行的不同转换,但没有一个具有我需要的结果。我有一个从Excel文件导入的数据框,经过处理,并希望导出为JSON文件。我试过这个:如何将常规数据帧转换为JSON?,json,r,dataframe,Json,R,Dataframe,我见过在堆栈上进行的不同转换,但没有一个具有我需要的结果。我有一个从Excel文件导入的数据框,经过处理,并希望导出为JSON文件。我试过这个: exportJson <- toJSON(data) print(exportJson) write(exportJson, "test.json") json_data <- fromJSON(file="test.json") 我的输出如下所示: Jill Jimmie Alex Jane
exportJson <- toJSON(data)
print(exportJson)
write(exportJson, "test.json")
json_data <- fromJSON(file="test.json")
我的输出如下所示:
Jill Jimmie Alex Jane
Jill Jill 0 Jill Jill
Jimmie 0 Jimmie Jimmie 0
Alex 0 Alex Alex 0
Jane Jane Jane Jane 0
{
"Jill": ["Jill",
"0",
"0",
"Jane",
"0",
"0",
"0",
"0",
"0",
"0",
...
当我需要它看起来像这样的格式时:
{
"nodes": [
{
"id": "id1",
"name": "Jill",
"val": 1
},
{
"id": "id2",
"name": "Jill",
"val": 10
},
(...)
],
"links": [
{
"source": "id1",
"target": "id2"
},
(...)
]
}
我见过将JSON转换为数据帧的方法,我知道
RJSONIO
,jsonlite
,rjson
,等等,我在谷歌上搜索过,也许我只是错过了一个明显的答案 jq中的“.”命令将重新格式化JSON数据。使用jqr包:
library(jqr)
# Unformatted (no whitespace)
x <- '{"a":1,"b":2,"c":[1,2,3],"d":{"e":1,"f":2}}'
jq(x, '.')
jq
也是一个独立的实用工具:你试过你的问题了吗?另外,请阅读jq实用程序擅长重新格式化json。看起来有一个R包:您能提供一个数据帧的示例吗<代码>dput(头部(数据))是的,我有Masoud@MattJewett我在问题编辑中包含了一个示例数据集。在尝试将数据帧转换为JSON之前,您可能需要重新格式化数据帧。所需的JSON输出具有用于id
、name
和val
的插槽,但这些值在数据帧中不存在。我认为您需要重新格式化您的数据帧,使其仅为三列,其中包含要输出到JSON的id
、name
、和val
数据。
{
"a": 1,
"b": 2,
"c": [
1,
2,
3
],
"d": {
"e": 1,
"f": 2
}
}