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

如何解决Python库instagrapi的KeyError错误?

解决Instagrapi调用hashtag_medias_recent时的KeyError: 'data'问题

这个错误的核心原因是:instagrapi库从Instagram API获取的响应数据里,没有找到预期的data字段,通常和登录状态、库版本兼容性或账号权限限制有关。以下是具体的排查和解决步骤:


1. 先确认登录是否真的成功

client.login()方法有时不会主动抛出登录失败的异常,比如账号需要验证、密码错误时,可能只是静默失败,导致后续API调用无法获取有效数据。修改代码添加登录验证:

from instagrapi import Client

with open("credentials.txt", "r") as f:
    username, password = f.read().splitlines()

client = Client()
# 启用基础延迟,降低被检测风险
client.delay_range = [1, 3]
# 捕获登录状态
login_success = client.login(username, password)

if not login_success:
    print("登录失败,请检查账号密码,或手动登录账号完成验证(如两步验证)")
    exit()

# 验证登录后的用户状态
if not client.user_id:
    print("登录状态异常,未获取到用户ID")
    exit()
print(f"已成功登录,用户ID:{client.user_id}")

hashtag = "bmw"
medias = client.hashtag_medias_recent(hashtag, 20)

for i, media in enumerate(medias):
    client.media_like(media.id)
    print(f"Liked post number {i+1} of hashtag {hashtag}")

2. 更新instagrapi到最新版本

Instagram的API结构会频繁调整,旧版本的库可能无法适配新的响应格式。执行命令更新:

pip install --upgrade instagrapi

3. 检查账号权限与限流情况

  • 如果是新注册的账号,Instagram会限制自动化操作,建议先手动登录账号正常浏览、互动1-2天,再使用脚本。
  • 避免短时间内批量调用API,保持合理的操作间隔(代码里的delay_range就是做这个的),防止被限流。
  • 检查账号是否有违规记录,是否被限制访问公开内容。

4. 测试其他API方法验证可用性

如果hashtag_medias_recent还是报错,可以先测试获取hashtag基础信息,确认API通路是否正常:

# 测试获取hashtag基础信息
hashtag_info = client.hashtag_info(hashtag)
print(f"Hashtag名称:{hashtag_info.name},帖子总数:{hashtag_info.media_count}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:10:00