Dropbox API, Python3, запрашивает 400 неверных запросов

#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)