You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取JSONL格式文件并转换为R语言数据框?

读取JSONL格式文件并转换为R数据框

标准JSON文件的常规读取方式

读取标准JSON数组格式的文件,可使用以下代码:

library(jsonlite)
json_text <- readLines("tect.json", warn = FALSE, encoding = "UTF-8")

解析JSON数据

将读取的内容合并后完成解析:

json_data <- fromJSON(txt = paste(json_text, collapse = ""))

这种方法适用于文件内容为标准JSON数组的场景,示例格式如下:

[
  {
    "id": 1,
    "name": "Apple",
    "color": "red",
    "price": 0.99
  },
  {
    "id": 2,
    "name": "Banana",
    "color": "yellow",
    "price": 0.5
  },
  {
    "id": 3,
    "name": "Orange",
    "color": "orange",
    "price": 0.75
  }
]

JSONL格式文件的读取问题

如果文件是JSONL格式(每行一个独立的JSON对象),示例内容如下:

{"id": 1, "name": "Apple", "color": "red", "price": 0.99 }
{"id": 2, "name": "Banana", "color": "yellow", "price": 0.5 }
{"id": 3, "name": "Orange", "color": "orange", "price": 0.75 }

使用上述标准JSON的读取方法会触发解析错误:

Error: parse error: trailing garbage
nge":"

解决方案

针对JSONL格式,有两种常用处理方式:

方法1:使用stream_in直接读取

jsonlite包的stream_in函数专门适配流式JSON(包括JSONL),可直接将文件转换为数据框:

library(jsonlite)
# 建立文件连接
conn <- file("tech.json", encoding = "UTF-8")
# 流式读取并解析为数据框
jsonl_df <- stream_in(conn)
# 关闭文件连接
close(conn)

该方法无需手动处理每行内容,效率较高,适合大文件场景。

方法2:逐行解析后合并

如果需要对每行数据做预处理(比如过滤无效行),可逐行读取解析后合并为数据框:

library(jsonlite)
# 读取所有行
lines <- readLines("tech.json", warn = FALSE, encoding = "UTF-8")
# 逐行解析每个JSON对象
json_list <- lapply(lines, fromJSON)
# 将列表转换为数据框
jsonl_df <- do.call(rbind, json_list)

内容的提问来源于stack exchange,提问作者Erik Brole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:37:24