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

如何从嵌套字典读取推特JSON数据的推文文本并生成DataFrame列

我帮你搞定这个问题!推特的长推文确实会藏在嵌套的extended_tweet字段里,咱们一步步来提取完整文本并生成DataFrame列:

1. 读取推特JSON数据

首先用pandas读取你的JSON文件,如果是每行一条推文的常见格式,记得加上lines=True参数:

import pandas as pd

# 替换成你的JSON文件路径
df = pd.read_json('twitter_data.json', lines=True)
2. 编写文本提取函数

写一个自定义函数,自动判断推文是常规长度还是长推文,优先提取完整内容:

def extract_full_tweet(row):
    # 处理转发的长推文:完整内容在retweeted_status的嵌套字段里
    if 'retweeted_status' in row and pd.notna(row['retweeted_status']):
        rt_tweet = row['retweeted_status']
        if 'extended_tweet' in rt_tweet and pd.notna(rt_tweet['extended_tweet']):
            return rt_tweet['extended_tweet']['full_text']
        return rt_tweet.get('text', '')
    
    # 处理当前推文的长文本
    if 'extended_tweet' in row and pd.notna(row['extended_tweet']):
        return row['extended_tweet']['full_text']
    
    # 常规短推文直接返回text字段
    return row.get('text', '')
3. 生成完整文本列

把函数应用到DataFrame的每一行,生成新的full_tweet_text列:

df['full_tweet_text'] = df.apply(extract_full_tweet, axis=1)
补充说明

推特API的规则是:当推文长度超过140字符时,text字段会显示截断后的内容,完整内容存在extended_tweet.full_text里;如果是转发的长推文,完整内容会嵌套在retweeted_status.extended_tweet.full_text中,上面的函数覆盖了这两种核心场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:36:49