#json #python-3.x #python-requests #dropbox-api
#json #python-3.x #python-запросы #dropbox-api
Вопрос:
Я могу пройти аутентификацию, подключиться к API DropBox и запустить team-members-list
.
Но я получаю следующую ошибку при попытке запуска team-members-remove
с дополнительным заголовком и данными в запросе.
запросы.исключения.Ошибка клиента HTTPError: 400: неверный запрос URL:
При добавлении try
:
повысить значение JSONDecodeError («Ожидаемое значение», s, err.value) из None
json.decoder.JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)
Пока что код Python:
headers = {'Authorization': 'Bearer ' TOKEN}
url = 'https://api.dropboxapi.com/2/team/members/remove'
data = {
"user": {".tag": "team_member_id", "team_member_id": userid},
"wipe_data": "true",
"transfer_dest_id": {".tag": "team_member_id", "team_member_id": adminid},
"transfer_admin_id": {".tag": "team_member_id", "team_member_id": adminid},
"keep_account": "false",
}
response = requests.post(url, data=data, headers=headers)
Я попытался внести некоторые изменения в вышеупомянутое, в том числе:
headers = {'Authorization': 'Bearer ' TOKEN, "Content-Type": "application/json" }
response = requests.post(url, json=data, headers=headers)
data = json.dump(data)
Здесь задокументировано несколько из этих ошибок, я прочитал о них и внедрил предложения, но все еще не смог решить эту проблему.
Любые указания приветствуются.
Предыстория:
- Python 3.5.2
- Запросы
- Dropbox для бизнес-API
Комментарии:
1. @Tomalak спасибо за форматирование. Выглядит намного лучше. В дальнейшем будет отправляться таким образом.
2. Нет проблем. К сожалению, не могу помочь вам с самим вопросом.
Ответ №1:
Где я ошибался, я пытался запустить response.text через json.loads, например
message = json.loads(response.text)
Я изменил это на
print(response.text)
Таким образом, мне были представлены полезные сообщения об ошибках.
Код теперь выглядит так, и он работает:
headers = {"Authorization": "Bearer " TOKEN, "Content-Type": "application/json"}
jsondata = json.dumps(data)
response = requests.post(url, data=jsondata, headers=headers)