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

如何在R语言的DataFrame中提取JSON列的occupation字段

提取类JSON列中的occupation字段

针对你数据里的speakers列(类JSON结构),不建议用字符串替换的方式提取字段,容易因为格式变动出错,更可靠的方式是用专门的JSON处理工具:

方法一:使用jsonlite包(推荐)

这个包可以直接解析JSON格式的字符串,精准提取目标字段:

# 安装包(首次使用时运行)
# install.packages("jsonlite")

# 加载包
library(jsonlite)

# 加载示例数据集
df <- structure(list(X_id = c(21L, 1L, 7L, 47L, 55L), duration = c(992L, 957L, 1266L, 1126L, 1524L), event = c("TED2006", "TED2006", "TED2006", "TEDGlobal 2005", "TED2006"), likes = c("17000", "110000", "60000", "80000", "14000"), published_date = structure(c(1156464660, 1151367060, 1151367060, 1158019860, 1153786260), class = c("POSIXct", "POSIXt"), tzone = "UTC"), related_videos = c("[\"144\",\"1282\",\"1379\",\"87\",\"2302\",\"2638\"]", "[\"243\",\"547\",\"2093\",\"74405\",\"64693\",\"83767\"]", "[\"1725\",\"2274\",\"172\",\"2664\",\"2464\",\"1268\"]", "[\"2237\",\"701\",\"1095\",\"1386\",\"76211\",\"242\"]", "[\"2228\",\"1476\",\"800\",\"2890\",\"45233\",\"2694\"]"), speakers = c("[{\"name\":\"Mena Trott\",\"occupation\":\"Blogger; cofounder, Six Apart\"}]", "[{\"name\":\"Al Gore\",\"occupation\":\"Climate advocate\"}]", "[{\"name\":\"David Pogue\",\"occupation\":\"Technology columnist\"}]", "[{\"name\":\"David Deutsch\",\"occupation\":\"Physicist, author\"}]", "[{\"name\":\"Jehane Noujaim\",\"occupation\":\"Filmmaker\"}]")), row.names = c(NA, 5L), class = "data.frame")

# 解析speakers列,提取occupation
df$occupation <- sapply(fromJSON(df$speakers), function(x) x$occupation)

# 查看结果
df$occupation

运行后会得到每个行对应的occupation值:

[1] "Blogger; cofounder, Six Apart" "Climate advocate"              "Technology columnist"          "Physicist, author"             "Filmmaker"

方法二:使用正则表达式(仅当无法用JSON包时)

如果不想依赖外部包,可以用stringr包的正则匹配提取:

# 加载stringr
library(stringr)

# 提取occupation字段内容
df$occupation <- str_extract(df$speakers, '(?<="occupation":")([^"]+)')

# 查看结果
df$occupation

这个方法通过匹配"occupation":"之后到下一个"之间的内容来提取,但如果JSON格式有变动(比如空格、转义符),可能会失效,所以优先推荐第一种方法。

内容的提问来源于stack exchange,提问作者Dário Rodrigues

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 07:55:21