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

R语言新手求助:提取Tibble列表列中的body文本至新列

提取Tibble中JSON字符串列的body字段

嘿,作为R新手遇到这种嵌套JSON格式的字符串问题太正常了,我来一步步帮你解决!

首先,你的revisions列是JSON格式的字符串,所以我们需要用JSON解析工具来提取里面的body字段。这里推荐用jsonlite包,它处理这类场景非常顺手。

步骤1:准备环境与数据

先把你的示例数据重现出来(方便测试),并加载必要的包:

library(tibble)
library(jsonlite)
library(purrr) # 用来批量处理每行数据

# 你的示例Tibble
df <- structure(
  list(revisions = "[{\"body\":\"<div>No me refiero especifico por La Segunda, voy al \\\"juicio de valor\\\" malicioso (tipo copuchenta) que emitió, contra un medio (cualquiera que haya sido), en un contexto parlamentario.</div>\"}]", 
       row.names = c(NA, -1L), 
       class = c("tbl_df", "tbl", "data.frame"))

步骤2:解析JSON并提取body字段

我们用map_chr函数遍历revisions列的每一行,解析JSON字符串后提取body内容,并存入新列body_text:

df <- df %>%
  mutate(
    # 解析JSON字符串:先转成JSON对象,取数组第一个元素,再提取body
    body_text = map_chr(revisions, ~ fromJSON(.x)[[1]]$body)
  )

可选:去掉HTML标签

如果你的body字段里包含<div>这类HTML标签,想要清理成纯文本的话,可以用rvest包:

# 先安装包(如果没装过)
# install.packages("rvest")
library(rvest)

df <- df %>%
  mutate(
    body_text_clean = map_chr(body_text, ~ html_text(read_html(.x)))
  )

结果展示

运行完上面的代码后,你的Tibble就会新增body_text(带HTML标签)和body_text_clean(纯文本)列,里面就是你要提取的内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 17:52:56