python - 如何使用 github-flask 为 {+path} 提供 URL 参数?

标签 python api github flask keyword-argument

首先,我完全不了解 Python。我正在使用 github-flask,显然是 flask,从 GitHub API 中提取数据。我正在尝试使用 contents_url 并检索文件。来自 GitHub API 的 URL 类似于:

// json
{
    ...
    "contents_url": "https://api.github.com/repos/<org_name>/<repo_name>/contents/{+path}"
    ...
}

...当我尝试将它提供给 github-flask 实例时,我得到一个 TypeError,“TypeError: request() got an unexpected keyword argument 'path'” 使用:

# python
contents = github.get(repo['contents_url'], path='.gitignore')

我很确定我遗漏了一些简单的东西。我不必求助于字符串操作,对吗?

最佳答案

Python推荐的字符串插值是.format方法。您的代码只需进行一些小的更改即可使用:

contents = github.get(repo['contents_url'].format(path='.gitignore'))

但您还必须稍微更改您的 contents_url:

https://api.github.com/repos/<org_name>/<repo_name>/contents/{path}

请注意 - .format 基于花括号进行插值,因此需要转义任何文字花括号。此处提供更多信息:https://docs.python.org/3/library/string.html#formatstrings


编辑:正如您在下面的评论中提到的,该 URL 直接来自 GitHub 的 API,您不能/不应该更改它。结果他们用的是RFC 6570 URL 模板(参见 https://developer.github.com/v3/#hypermedia )。如果您使用 uritemplate我在下面建议的库,代码将如下所示:

from uritemplate import expand

# ...

contents = github.get(expand(repo['contents_url'], {'path': '.gitignore'}))

关于python - 如何使用 github-flask 为 {+path} 提供 URL 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31363192/

相关文章:

git - 快速解决与 --theirs 的 GIT merge 冲突

r - 从github安装flipMaxDiff软件包时出错

python - 单个子图 Pyplot 上的多种绘图类型

python - 使用java一段时间后学习python,为什么我的 "stutter"链接列表函数不起作用?

c# - 使用 C# HttpClient API 和 postman 测试的区别?客户端调用适用于 postman ,但不适用于 C# httpClient getAsync

jquery - 如何通过 GitHub API 更新 Gist?

python - OptionMenu 命令函数需要参数

Python 快速 DataFrame 连接

c# - 有没有一种简单的方法可以使用 Office 365 API 来验证 WPF 桌面应用程序?

java - Google Cloud Speech API 是否会保存我的录音?