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

如何将ID位于大括号外无引号的JSON格式文件导入R

处理非标准行JSON文件导入R的解决方案

你可以直接在R内完成文本处理+数据导入,无需修改原始文件,操作步骤如下:

方法1:R内直接处理(推荐)

  1. 先安装并加载JSON处理依赖包
install.packages("jsonlite")
library(jsonlite)
  1. 逐行读取原始文件并做格式转换
# 替换为你的实际文件路径
raw_lines <- readLines("your_data_file.txt")

processed_json <- lapply(raw_lines, function(x) {
  # 定位每行第一个左大括号的位置,拆分ID和JSON主体
  brace_idx <- regexpr("{", x, fixed = T)[1]
  id <- trimws(substr(x, 1, brace_idx - 1))
  json_body <- substr(x, brace_idx, nchar(x))
  # 拼接为合法JSON结构,自动给ID加双引号
  paste0('{"id": "', id, '", ', substring(json_body, 2))
})

# 直接从处理后的文本导入为数据框
result_df <- stream_in(textConnection(processed_json))

上述方法兼容性更强,哪怕ID前后存在多余空格也可以正常识别。

方法2:预先转换原始文件(适合大文件场景)

如果你需要先把原文件转成标准JSON行格式,可以用命令行工具快速处理:

  • Linux/Mac 环境用sed命令:
sed -E 's/^([^ ]+) +(.*)/{"id": "\1", \2/' 原始文件.txt > 标准格式.json
  • Windows 环境用PowerShell命令:
Get-Content 原始文件.txt | ForEach-Object { 
    $parts = $_ -split ' ', 2
    '{"id": "{0}", {1}' -f $parts[0], $parts[1] 
} | Out-File 标准格式.json

转换完成后直接用jsonlite::stream_in("标准格式.json")即可正常导入。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:03