Я пытаюсь использовать API GitHub для создания нового файла.Согласно документации
это можно сделать с помощью запроса PUT.
Я использую пакет запросов для выполнения запроса.Конечная точка API GitHub принимает действительные объекты json в качестве входных данных, т. Е. Где строки находятся в двойных кавычках.
Мои данные имеют следующий формат -
{
'message': 'Updated learn.md',
'content': 'ZW51bTM0PT0xLjEuNAotZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL29wZW50b2svT3BlbnRvay1QeXRob24tU0RLLmdpdEAwMzU4YTI0ZDM0ZTkzMjVjYzRhODNhYmQxZTVjMGJmYzQ2M2ZkMjYwI2VnZz1vcGVudG9rCnB5dHo9PTIwMTYuNApyZXF1ZXN0cz09Mi4xMC4wCgo=',
'branch': 'master'
}
Поскольку я помещаю данные, находящиеся вформа словаря Python содержит одинарные кавычки, но GitHub не принимает его и выдает ответ 400 «Проблемы синтаксического анализа JSON», как показано ниже
{
"message": "Problems parsing JSON",
"documentation_url": "https://developer.github.com/v3/repos/contents/#update-a-file"
}
Я подтвердил, что проблема заключается виз-за кавычек только с помощью почтальона для выполнения запроса PUT, в этом случае он был успешным
Правильные данные показаны ниже
{
"message": "Updated learn.md",
"content": "ZW51bTM0PT0xLjEuNAotZSBnaXQraHR0cHM6Ly9naXRodWIuY29tL29wZW50b2svT3BlbnRvay1QeXRob24tU0RLLmdpdEAwMzU4YTI0ZDM0ZTkzMjVjYzRhODNhYmQxZTVjMGJmYzQ2M2ZkMjYwI2VnZz1vcGVudG9rCnB5dHo9PTIwMTYuNApyZXF1ZXN0cz09Mi4xMC4wCgo=",
"branch": "master"
}
Вот как я делаю вызов
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
Как я могу сделать допустимые объекты JSON в Python, чтобы GitHubAPI принимает это?Как мне этого добиться?