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

Python使用Tweepy提取in_reply_to_status_id返回None问题

错误原因

取值返回None不属于语法错误,是Twitter接口返回结构的固有逻辑:

  • 外层retweet对象是用户执行转发操作生成的独立推文对象,并非被转发的原始推文。如果用户转发时没有附加评论、没有在转发链路中触发回复动作,这个外层转发对象的in_reply_to_status_id字段本身就为null,属于接口正常返回。
  • 你观测到的有效值位于retweeted_status字段内,该字段存储的是被转发原始推文的全量数据,你需要的in_reply_to_status_id是原始推文的属性,不属于外层转发对象,直接在外层层级取值自然只能拿到None。
  • 你当前代码中先json.dumps再json.loads的两次序列化/反序列化操作是冗余的,Tweepy的Status模型原生支持属性访问,不需要反复转换JSON格式。
正确实现方式

提供两种可用写法,按需选择即可:

  • 直接操作Tweepy模型对象(推荐,代码更简洁)
retweets_list = api.get_retweets(id=tweetid)  
for retweet in retweets_list:
    # 从嵌套的原始推文属性上取目标字段
    target_reply_id = retweet.retweeted_status.in_reply_to_status_id
    print(target_reply_id)
  • 字典结构取值(适配习惯操作JSON数据的场景)
retweets_list = api.get_retweets(id=tweetid)  
for retweet in retweets_list:
    retweet_dict = retweet._json
    # 先定位到原始推文的字典节点,再取目标字段
    target_reply_id = retweet_dict['retweeted_status']['in_reply_to_status_id']
    print(target_reply_id)

补充说明:如果被转发的原始推文本身不是回复其他推文生成的内容,哪怕从retweeted_status节点取in_reply_to_status_id也会返回None,这是数据本身的属性决定的,不属于代码问题。

内容的提问来源于stack exchange,提问作者e.iluf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:45:32