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

如何将包含嵌套对象的JSON转换为Pandas DataFrame并新增username列

解决将Twitter API返回的用户名加入推文DataFrame的方案

核心逻辑:Twitter API返回的includes.users数组存储了所有关联用户的元数据,其中用户id字段和推文data数组中的author_id字段一一对应,通过字段匹配即可将用户名关联到对应推文行。


方案1:字典映射(适合仅需添加少量用户字段的场景)

该方案代码简洁、运行效率高,无需处理列名冲突:

# 构建author_id到username的查询字典
user_id_to_username = {user["id"]: user["username"] for user in json_response["includes"]["users"]}
# 直接为现有DataFrame新增username列
df["username"] = df["author_id"].map(user_id_to_username)

方案2:DataFrame合并(适合需要批量添加多个用户字段的场景)

如果后续还需要加入用户粉丝数、认证状态等更多用户维度字段,可以将用户数组也转为DataFrame后关联合并:

# 将用户元数据转为DataFrame
users_df = pd.json_normalize(json_response["includes"]["users"])
# 关联推文数据和用户数据,左连接保证所有推文行都被保留
df = df.merge(
    # 可在下方列表中添加更多需要的用户字段,如"verified", "public_metrics.followers_count"
    users_df[["id", "username"]],
    left_on="author_id",
    right_on="id",
    how="left"
)
# 处理合并后的重名列,避免和原有推文id字段混淆
df = df.drop(columns=["id_y"]).rename(columns={"id_x": "tweet_id"})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:06:03