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

使用Python标准化Twitter API的JSON数据时遇字段缺失问题求助

解决Twitter API JSON数据标准化中缺失referenced_tweets字段的问题

当使用pd.json_normalize处理Twitter API返回的JSON数据时,部分推文因未引用其他内容而缺失referenced_tweets字段,会导致标准化后的DataFrame中该字段存在不一致情况。以下是两种实用的处理方案:

方案一:预处理JSON数据,统一字段存在性

先遍历所有推文,给缺失referenced_tweets的条目添加空列表,确保所有对象都包含该字段后再进行标准化:

import pandas as pd
import json

# 遍历每个推文,确保referenced_tweets字段存在
for tweet in json_response['data']:
    tweet.setdefault('referenced_tweets', [])

# 执行标准化
df_test = pd.json_normalize(json_response, 
                          record_path='data',
                          errors='ignore'
                          )

这样处理后,所有行都会保留referenced_tweets字段,无引用的行对应值为空列表,后续可根据需求进一步展开该字段。

方案二:先标准化基础数据,再单独补充引用字段

先完成基础数据的标准化,再单独提取referenced_tweets信息并合并到DataFrame中:

import pandas as pd
import json

# 标准化基础数据
df_test = pd.json_normalize(json_response, 
                          record_path='data',
                          errors='ignore'
                          )

# 提取所有推文的referenced_tweets,缺失则用空列表填充
referenced_list = [tweet.get('referenced_tweets', []) for tweet in json_response['data']]

# 将引用信息添加为DataFrame的新列
df_test['referenced_tweets'] = referenced_list

进阶:展开引用字段为单独列

如果需要将referenced_tweets中的id和type拆分为独立列,可以单独对引用字段进行标准化并合并:

# 标准化referenced_tweets字段,关联原推文id
df_referenced = pd.json_normalize(json_response['data'],
                                  record_path=['referenced_tweets'],
                                  meta=['id'],
                                  errors='ignore'
                                  )

# 合并到原DataFrame,无引用的行对应字段为NaN
df_test = df_test.merge(df_referenced, on='id', how='left')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:54:16