Sha*_*mad 1 python json github-api python-3.x python-requests
我正在尝试使用 GitHub api 来创建新文件。根据文档
这可以通过 PUT 请求来完成。
我正在使用 requests 包来发出请求。GitHub api 端点接受有效的 json 对象作为输入,即字符串位于双引号内。
我的数据具有以下格式 -
{
'message': 'Updated learn.md',
'content': 'ZW51bTM0PT0xLjEuNAotZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL29wZW50b2svT3BlbnRvay1QeXRob24tU0RLLmdpdEAwMzU4YTI0ZDM0ZTkzMjVjYzRhODNhYmQxZTVjMGJmYzQ2M2ZkMjYwI2VnZz1vcGVudG9rCnB5dHo9PTIwMTYuNApyZXF1ZXN0cz09Mi4xMC4wCgo=',
'branch': 'master'
}
Run Code Online (Sandbox Code Playgroud)
由于我以 Python 字典的形式放置数据,因此它带有单引号,但 GitHub 不接受它,并给出“解析 JSON 时出现问题”的 400 响应,如下所示
{
"message": "Problems parsing JSON",
"documentation_url": "https://developer.github.com/v3/repos/contents/#update-a-file"
}
Run Code Online (Sandbox Code Playgroud)
我已经验证问题是因为仅使用邮递员发出 PUT 请求时的引号,在这种情况下它是成功的。
正确的数据如下所示
{
"message": "Updated learn.md",
"content": "ZW51bTM0PT0xLjEuNAotZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL29wZW50b2svT3BlbnRvay1QeXRob24tU0RLLmdpdEAwMzU4YTI0ZDM0ZTkzMjVjYzRhODNhYmQxZTVjMGJmYzQ2M2ZkMjYwI2VnZz1vcGVudG9rCnB5dHo9PTIwMTYuNApyZXF1ZXN0cz09Mi4xMC4wCgo=",
"branch": "master"
}
Run Code Online (Sandbox Code Playgroud)
这是我拨打电话的方式
def put_data_to_github(self, url, data):
headers = {}
headers['Authorization'] = "token " + self.auth_token
response = requests.put(url, data=data, headers=headers)
return response
Run Code Online (Sandbox Code Playgroud)
如何在 Python 中创建有效的 JSON 对象以便 GitHub api 接受它?我怎样才能实现这个目标?
发送之前必须将数据转换为 json。
import json
...
response = requests.put(url, data=json.dumps(data), headers=headers)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1223 次 |
最近记录: |