我的应用程序的要求是在GitHub API上进行GET
https://api.github.com/repos/ {FULL_NAME} /提交
在理想情况下,此REST API返回字典列表。然后应用程序必须获取结果的第一个元素。
但是,REST API也可能在非理想情况下返回字典(没有提交的空存储库)。在这种情况下,如果获取第一个元素,它将抛出一个keyerror。
现在,我已将代码包装在try..catch中。因此,如果在非理想情况下引发异常,则应用程序将退出。
有没有更好的方法来处理理想和非理想情况?
答案 0 :(得分:2)
GitHub API请求的响应采用JSON格式。如果使用JSON库解析响应然后使用for
循环遍历提交数据,那会更好。例如,打印从响应中获得的所有提交sha
的好方法如下:
import json
import requests
response = requests.get(<<URL with necessary authentication>>)
if response != 0 and response != None:
response_j = response.json() #here 'response' is the response you get from the requests.get() command for example
for commit in response_j:
print(commit['sha'])
如果存储库没有提交,它应该返回一个空的dict,这样你就可以设置一个条件来检查没有提交。