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

在R中将数据框导出为JSONL并指定字段为标量字符串

解决R语言导出JSONL时指定字段为标量字符串的问题

要让text字段输出为标量字符串,只需在转JSON前将每行的text从长度为1的向量提取为单个元素的标量即可,具体实现如下:

library(tidyverse)
library(jsonlite)

d <- tibble(
  id = 1:3,
  text = c("this is a string", "this is another string", "yet another string")
) 

# 处理每行数据,将text转为标量后生成JSON字符串
jl <- d |>
  transpose() |>
  map(function(row) {
    # 提取text向量中的单个元素,转为标量
    row$text <- row$text[[1]]
    toJSON(row)
  }) |>
  map_chr(as.character)

# 查看输出结果
jl
#> [1] "{\"id\":[1],\"text\":\"this is a string\"}"      
#> [2] "{\"id\":[2],\"text\":\"this is another string\"}"
#> [3] "{\"id\":[3],\"text\":\"yet another string\"}"

原理说明

transpose()将数据框转换为每行一个列表的结构,默认情况下列表中的id和text都是长度为1的R向量,toJSON()会将这类向量转为JSON数组(带方括号)。通过row$text[[1]]提取向量中的单个元素,把它转为标量后,toJSON()就会将其输出为不带方括号的JSON字符串值,同时保留id的数组格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:07:46