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

如何在Jupyter Notebook中用Python将tweets.js转为Pandas DataFrame

解决步骤

1. 安装依赖

如果还未安装flatten-json,先执行安装命令:

pip install flatten-json

2. 读取并预处理tweets.js

tweets.js开头带有JavaScript变量声明(如window.YTD.tweets.part0 = ),需要先剥离这段非JSON内容,提取纯数据数组:

import json
import pandas as pd
from flatten_json import flatten

# 读取本地文件
with open("tweets.js", "r", encoding="utf-8") as file:
    raw_text = file.read()

# 剥离前缀,获取纯JSON字符串
json_str = raw_text.split(" = ")[1].rstrip(";")
# 解析为Python列表
tweets_data = json.loads(json_str)

3. 扁平化嵌套结构

推文数据存在多层嵌套,使用flatten工具将每条推文的嵌套字段展开为扁平键值对:

flattened_tweets = [flatten(tweet) for tweet in tweets_data]

4. 转换为Pandas DataFrame

将扁平化后的列表直接转为DataFrame:

df = pd.DataFrame(flattened_tweets)
# 验证结果
df.head()

错误原因解析

  • pd.read_json()失败:tweets.js不是标准JSON文件,开头的JavaScript变量声明会导致解析失败,且嵌套结构也无法被直接处理。
  • json.dumps('tweets.json')用法错误:json.dumps()的作用是将Python对象转换为JSON字符串,你传入的是文件名字符串,得到的是"tweets.json"这个纯字符串,而非文件的JSON内容,因此无法被flatten_json处理。正确的做法是先读取文件内容,用json.loads()解析为Python对象后再进行扁平化操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:01:12