python - 处理 REST API 的不同响应数据类型

标签 python rest response github-api

我的应用程序的要求是在 GitHub API 上执行 GET

https://api.github.com/repos/{full_name}/commits

在理想情况下,此 REST API 返回字典列表。然后应用程序必须获取结果的第一个元素。

但是,REST API 也可能在非理想情况下返回字典(没有提交的空存储库)。在这种情况下,如果获取第一个元素,它将抛出一个 keyerror。

现在,我已将代码包装在 try..catch 中。因此,如果在非理想情况下引发异常,应用程序就会退出。

是否有更好的方法来处理理想和非理想情况?

最佳答案

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'])

如果存储库没有提交,它应该返回一个空字典,以便您可以设置一个条件来检查没有提交。

关于python - 处理 REST API 的不同响应数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47069290/

相关文章:

javascript - Backbone.js 中的嵌套模型

http - 不同 HTTP 响应代码的示例 http url

python - PyPi 包中包含哪些内容?

rest - 授权跨站点 Web 应用程序访问我的 RESTful API

python - 使用默认关系撤消 `lazyload()`

c# - ASP.NET Core 传递 Ienumerable 对象以在 Controller 上获取操作

json - 在 Spring Controller 方法中返回 HTML 或 JSON

http - 超时与服务器无响应,我如何区分它们?

python - 使用嵌入式 Python 脚本编写 Windows GUI 应用程序

python - 如何将python列表转换为Pandas系列