KeyError:Python Instagram API客户端的"数据"

And*_*rey 11 python instagram keyerror instagram-api

我使用这个客户端python-instagramPython 3.4.3MacOS.

我的步骤:

  • 注册了一个新客户端instagram,收到了client_id和client_secret
  • Pip安装python-instagram
  • 将sample_app.py复制到我的mac

我按照说明操作client_id,我通过instagram成功授权我的应用程序并尝试了这个示例列表,但没有一个有效.点击后,我会点击client_secretAPI请求更改的标题和计数器python-instagram.

如果我试图在我的终端中显示sample_app.py异常Sample app.如果我删除<h2>构造,留下块Remaining API Calls = 486/500,当我看到'错误:500内部服务器错误'.

这是追溯:

Traceback (most recent call last):
File "/Users/user/.envs/insta/lib/python3.4/site-packages/bottle.py", line 862, in _handle
return route.call(**args)
File "/Users/user/.envs/insta/lib/python3.4/site-packages/bottle.py", line 1732, in wrapper
rv = callback(*a, **ka)
File "sample_app.py", line 79, in on_recent
recent_media, next = api.user_recent_media()
File "/Users/user/.envs/insta/lib/python3.4/site-packages/instagram/bind.py", line 197, in _call
return method.execute()
File "/Users/user/.envs/insta/lib/python3.4/site-packages/instagram/bind.py", line 189, in execute
content, next = self._do_api_request(url, method, body, headers)
File "/Users/user/.envs/insta/lib/python3.4/site-packages/instagram/bind.py", line 151, in _do_api_request
obj = self.root_class.object_from_dictionary(entry)
File "/Users/user/.envs/insta/lib/python3.4/site-packages/instagram/models.py", line 99, in object_from_dictionary
for comment in entry['comments']['data']:
KeyError: 'data'
Run Code Online (Sandbox Code Playgroud)

我使用的所有代码都来自Instagram官方python API客户端的示例.

For*_*rge 22

有一个开放Github issue的这个错误,一个fix被发送,但它还没有合并.

models.py在已安装的软件包上添加一行修复程序.

用sudo打开:

sudo vi /Library/Python/2.7/site-packages/instagram/models.py  # Use relevant python version 
Run Code Online (Sandbox Code Playgroud)

在第99行,添加:

if "data" in entry["comments"]:
Run Code Online (Sandbox Code Playgroud)

在接下来的两行上更正缩进:

       for comment in entry['comments']['data']: 
           new_media.comments.append(Comment.object_from_dictionary(comment))
Run Code Online (Sandbox Code Playgroud)


小智 5

看来models.py中存在一个错误.如果您在该文件中注释掉第99和100行,"示例应用"将起作用,或者至少看起来有效.显然,这不是一个"真正的"修复,但它确实表明它不是示例Python程序或Instagram的问题.

    Line 99  #  for comment in entry['comments']['data']:
    Line 100 #      new_media.comments.append(Comment.object_from_dictionary(comment))
Run Code Online (Sandbox Code Playgroud)