【发布时间】:2020-04-29 15:15:13
【问题描述】:
这几天我一直在摸不着头脑,似乎找不到可以在线解决我的问题的解决方案。我正在尝试访问 zendesk 上的数据并进行分页。出于某种原因,我得到了一个 KeyError,即使我可以看到该密钥确实存在。这是我的代码:
data_users2 = [[]]
while url_users:
users_pagination = requests.get(url_users,auth=(user, pwd))
data_user_page = json.loads(users_pagination.text)
print (data_user_page.keys())
for user in data_user_page['users']:
data_users2.append(user)
url = data_user_page['next_page']
这是输出:
dict_keys(['users', 'next_page', 'previous_page', 'count'])
dict_keys(['error'])
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-22-fab95d95ddeb> in <module>
6 data_user_page = json.loads(users_pagination.text)
7 print (data_user_page.keys())
----> 8 for user in data_user_page["users"]:
9 data_users2.append(user)
10 url = data_user_page["next_page"]
KeyError: 'users'
如您所见,用户确实存在。如果我尝试打印 next_page,也会发生同样的事情,我得到 next_page 的 KeyError。
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
请注意,您打印了两组密钥。
KeyError不是来自第一次迭代,其中实际上存在“用户”键,而是来自仅包含“错误”键的第二次迭代。 (换句话说,你在确定下一页的 URL 时做错了。) -
您将
url设置为下一页,但在下次调用requests.get时仍使用url_users。您可能希望在进入循环之前设置url = url_users,然后在每次迭代时调用requests.get(url, ...)。 -
不敢相信我错过了,谢谢!但是,我仍然给我这个错误....
标签: python python-3.x list