Проблемы с Python запросами при использовании django

Я пытаюсь использовать API, отправляя пост-запрос. Вот мой код ниже

def sendpostrequest(request):
     form = RechargeForm (request.POST or None)
     if form.is_valid():
           mobile_number = form.cleaned_data['mobile_number']
           amount = form.cleaned_data['amount']
           network_id = form.cleaned_data['network_id']
           plan_id = form.cleaned_data['plan_id ']
     if request.method == "POST":
               url = "https://exampleapi/api/topup/"
               payload = "{\"network\": network_id,\n\"mobile_number\": \"09037346247\",\n\"plan\":plan_id}"
               headers = {'Authorization': 'Token s66666vbbbbbbbb5c891fe9e7bbe3f9a0a8742d','Content-Type': 'application/json'}
               response = requests.request("POST", url, headers=headers, 
           data=json.dumps(payload))
               info = response.json()
     
               info['mobile_number'] = mobile_number
               info['network_id'] = network_id
                info['amount'] = amount

      return render(request, 'data_api_recharge_successful.html', { 
          'info':info, 'mobile_number':mobile_number, 
              'network_id':network_id ,})

ERROR

status_code = 400( The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (for example, malformed request syntax, invalid request message framing, or deceptive request routing).

error = response.text
error =   {"non_field_errors":["Invalid data. Expected a dictionary, but got str."]} .

Уточнение ошибки

После отправки этого запроса я получил Status Code=400 когда я сделал status_code = response.status_code а response.text дал мне {"non_field_errors":["Invalid data. Expected a dictionary, but got str."]} .

status_code = response.status_code

Request For Help

Может ли кто-нибудь помочь мне исправить это, потому что я очень уверен, что делаю что-то неправильно, чтобы получить эти две ошибки

Документация, которой я следую для запроса на python, выглядит следующим образом

import requests
import json
url = "https://exampleapi/api/topup/"  
payload = "" headers = { 'Authorization': 'Token  8f00fa816b1e3b485bahhhhhd361ef803311', 'Content-Type': 'application/json' }
  
response = requests.request("GET", url, headers=headers, data=payload) 
print(response.text)

Вы отправляете полезную нагрузку как целую строку, измените ее на словарь, т.е. удалите кавычки " из вашей полезной нагрузки как

payload = {
    "network": network_id,
    "mobile_number": "09037346247",
    "plan":plan_id
}
Вернуться на верх