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

如何在R中正确解析Twitter JSON并转换为Data Frame?

解决Twitter JSON Lines转DataFrame的解析问题

问题根源

你的JSON文件是JSON Lines格式(每行一个独立的Tweet JSON对象),而非标准的JSON数组格式。fromJSON()默认会将整个文件当作单个JSON结构解析,因此会因缺少数组包裹和元素间逗号报错;手动添加首尾括号但未给每行对象间加逗号,依然不符合JSON数组规范,所以报错持续。

解决方案一:用fromJSON()直接读取JSON Lines

jsonlite包的fromJSON()支持lines=TRUE参数,专门用于处理每行一个JSON对象的格式,同时配合flatten=TRUE展开嵌套结构:

library(jsonlite)
# 读取JSON Lines文件并直接转换为扁平化DataFrame
tweets_df <- fromJSON(
  "/Users/malana/Downloads/tweets.20130201_055232.10000lines",
  lines = TRUE,
  flatten = TRUE
)

解决方案二:用stream_in()处理并优化嵌套列

如果偏好流式读取(适合大文件),可以用stream_in(),配合flatten=TRUE展开嵌套,若仍有未解析的二级列,用tidyr的unnest_wider()手动展开:

library(jsonlite)
library(tidyr)

# 流式读取文件
conn <- file("/Users/malana/Downloads/tweets.20130201_055232.10000lines")
tweets_df <- stream_in(conn, flatten = TRUE)
close(conn)

# 展开指定嵌套列(示例:展开user列,列名加前缀区分)
tweets_df <- tweets_df %>% unnest_wider(user, names_sep = "_")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:30:23