【问题标题】:Flatten nested JSON to dataframe in R将嵌套的 JSON 展平为 R 中的数据框
【发布时间】:2020-01-22 06:05:12
【问题描述】:

我正在尝试从 R 中展平嵌套的 JSON 文件,

这是我当前的代码

library(jsonlite)
json_file <- "json file"
json_data = fromJSON(json_file, flatten = FALSE)
flat_data = as.data.frame(json_data)

但是我收到以下错误

flat_data = as.data.frame(json_data) 错误(函数(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,: 参数暗示不同的行数:1、13、3201

这是我的 JSON 结构示例

{
    "RIDE":{
        "STARTTIME":"2020\/01\/05 22:27:49 UTC ",
        "RECINTSECS":1,
        "DEVICETYPE":"Garmin FR735XT ",
        "IDENTIFIER":" ",
        "TAGS":{
            "Aerobic Training Effect":"3.8 ",
            "Athlete":"Chuck Finley",
            "Data":" ",
            "Device":"Garmin",
            "Device Info":"HR Garmin 2327",
            "File Format":" ",
            "Filename":"2020_01_06_06_27_49.json ",
            "Month":"January ",
            "Performance Condition":"-5 ",
            "Recovery Time":"  ",
            "Source Filename":"A1662750_2020_01_06_06_27_49.gz ",
            "Sport":"Run ",
            "SubSport":" ",
            "VO2max detected":"61.7 ",
            "Weekday":"Mon ",
            "Workout Code":" ",
            "Year":"2020 "
        },
        "INTERVALS":[
            { "NAME":"Lap 1 ", "START": 0, "STOP": 249, "COLOR":"#000000", "PTEST":"false" },
            { "NAME":"Lap 2 ", "START": 250, "STOP": 504, "COLOR":"#000000", "PTEST":"false" }
        ],
        "SAMPLES":[
            { "SECS":0, "KM":0, "KPH":0, "HR":104, "ALT":14, "LAT":-40.402758436, "LON":175.0371112, "SLOPE":0, "LRBALANCE":0, "RCAD":109.5, "RVERT":0.47, "RCON":273 },
            { "SECS":1, "KM":0.00056, "KPH":0, "HR":104, "ALT":14, "LAT":-40.402758436, "LON":175.0371112, "SLOPE":0, "LRBALANCE":24.87, "RCAD":109.5, "RVERT":0.47, "RCON":273 }
        ],
        "XDATA":[
        {
            "NAME" : "EXTRA",
            "VALUES" : [ "STANCETIMEPERCENT", "VERTICALRATIO", "STEPLENGTH", "FIELD_88", "ACTIVITYTYPE", "PERFORMANCECONDITION" ],
            "UNITS" : [ "", "", "", "", "", "" ],
            "SAMPLES" : [
                { "SECS":1, "KM":0, "VALUES":[ 48.5, 0, 0, 300, 1, 0 ] },
                { "SECS":2, "KM":0, "VALUES":[ 48.5, 4.96, 891, 300, 1, 0 ] }
            ]
        }
        ]
    }
}

我对 R 很陌生,所以任何建议都将不胜感激。

【问题讨论】:

  • 恐怕我在使用您的示例时不会收到任何错误。我确实使用“test_file.json”,即包含 JSON 的文件的名称,而不是“json 文件”,fromJSON 将尝试将其解释为 JSON 的字符串。 as.data.frame 按预期工作并生成 JSON 数据的数据框。
  • 嗨@gersht,谢谢 - 我已经使用我提供的数据进行了测试并且它有效,但这只是测试数据。这让我可以缩小问题的范围,在真实数据集中,“INTERVALS”有 13 条记录,“Sample”有 3201 条记录。谢谢!
  • 我想你的问题已经解决了?

标签: r json


【解决方案1】:

只需更改文件名。 Json 文件应该是 .json

json_file <- "json file.json"

【讨论】:

    猜你喜欢
    • 2020-09-27
    • 2022-06-21
    • 2021-05-14
    • 2020-03-11
    • 2021-04-27
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多