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

调用Twitter API解析JSON时遇'entries'键不存在错误求助

解决Twitter API获取screen_name时的'entries'键缺失错误

问题原因

你遇到的'entries' key not found错误,是因为硬编码的响应路径和实际返回的JSON结构不匹配。可能的情况包括:

  • Twitter非官方GraphQL API的响应结构发生了变更
  • 请求未成功,返回了错误信息而非预期的用户数据
  • instructions数组的第一个元素并非包含entries的对象

调试与修复步骤

  1. 先查看完整响应结构
    不要直接访问深层嵌套的键,先打印整个响应数据,确认实际结构:
import requests, json

# 你的cookies、headers、params代码保持不变

data = requests.get(
    'https://twitter.com/i/api/graphql/3yX7xr2hKjcZYnXt6cU6lQ/Followers',
    params=params, cookies=cookies, headers=headers
).json()

# 打印格式化后的响应,方便查看结构
print(json.dumps(data, indent=2))

运行后你可以清楚看到:返回的JSON是否包含预期的entries字段,或者是否存在errors字段说明请求失败(比如认证过期、权限不足)。

  1. 安全访问嵌套键
    即使结构正确,直接用索引和键访问容易触发KeyError,建议使用.get()方法逐层获取,同时处理可能的缺失情况:
# 逐层安全获取目标数据
timeline_instructions = data.get('data', {}).get('user', {}).get('result', {}).get('timeline', {}).get('timeline', {}).get('instructions', [])

if timeline_instructions:
    # 遍历instructions找到包含entries的项
    for instr in timeline_instructions:
        entries = instr.get('entries')
        if entries:
            screen_name = entries[0].get('content', {}).get('itemContent', {}).get('user_results', {}).get('result', {}).get('screen_name')
            if screen_name:
                print(screen_name)
            break
else:
    print("未找到有效的timeline instructions")

额外提示

  • Twitter的非官方GraphQL API没有公开文档,结构经常变更,硬编码路径很容易失效。建议使用官方Twitter API v2(需开发者账号)来获取关注者信息,结构更稳定且有完整文档支持。
  • 确保你的cookies、auth_token等认证信息是有效的,过期的认证会导致请求返回错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:49:49