调用GitHub API创建远程仓库失败,提示JSON解析问题
解决GitHub API创建仓库时的"Problems parsing JSON"错误
你遇到的错误源于两个关键问题:
- 用
data参数传递请求体,GitHub API要求接收JSON格式请求,但data会把字典转为表单编码格式,导致API无法解析 private字段传了字符串'true',而GitHub API要求这个参数是布尔类型(True/False)
修正后的代码
import requests from pprint import pprint import os GIT_TOKEN = os.getenv('TMP_TOKEN') payload = { 'name': 'vbk_test', 'private': True # 改为布尔值 } headers = { "Authorization": "Bearer " + GIT_TOKEN, "Accept": "application/vnd.github+json", "X-GitHub-Api-Version": "2022-11-28" } # 使用json参数替代data,requests会自动处理JSON序列化和Content-Type头 r = requests.post('https://api.github.com/user/repos', json=payload, headers=headers) pprint(r.json())
关键修改说明
- 请求体传递方式:
requests.post中用json=payload代替data=payload,requests会自动将字典序列化为JSON字符串,并设置Content-Type: application/json请求头,匹配GitHub API的格式要求。 - 参数类型修正:
private字段从字符串'true'改为布尔值True,GitHub API对该字段类型有明确规定,传递字符串会触发参数校验失败。
修改后重新运行代码,即可成功创建私有仓库。
内容的提问来源于stack exchange,提问作者Vincent A
相关产品推荐
相关产品推荐

