首页 > 解决方案 > JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) in POST request

问题描述

我正在开发一个集成支付网关的项目,我在其中创建了一个 JSON 字符串并传递 URL,当所有信息都正确时,它会生成一个支付链接。当我使用演示 URL 和演示数据时,它运行良好,但当我使用真实 URL 时,它会显示此错误。这是view.py:

def payment(request):
    jsonObj={
        "name": "name"
    }
    json_string = json.dumps(jsonObj)
    print(json_string)
    url = "https://url.something"
    headers = {'Content-type': 'application/json', 'Accept': 
    'application/json'}
    r = requests.post(url, data=json_string, headers=headers)
    print(r.json())
    j = r.json()['status']
    k = r.json()['data']
            if j == "200":
        payment_id = k['payment_id']
        redirect_url = k['redirect_url']
        payment_link = str(redirect_url) + "?" + str(payment_id)
        print(payment_link)
        context = {
            'payment_link': payment_link,
        }
        return render(request, 'users_dashboard/payment.html', context)
return render(request, 'users_dashboard/product_rashid.html')

标签: pythonjsondjango

解决方案


我以这种方式更改了代码:

def payment(request):
    url = "https://url.something"
    headers = {'content-type': 'application/json', 'User-Agent': 'curl/7.47.1'}
    jsonObj={
        "name": "name"
    }
    post = requests.post(url, data=json.dumps(jsonObj), headers=headers)
    print(post.status_code, post.reason)

    j = post.json()['status']
    k = post.json()['data']
    if j == "200":
        payment_id = k['payment_id']
        redirect_url = k['redirect_url']
        payment_link = str(redirect_url) + "?" + str(payment_id)
        print(payment_link)
        context = {
            'payment_link': payment_link,
        }
        return render(request, 'users_dashboard/payment.html', context)
return render(request, 'users_dashboard/product_rashid.html')

推荐阅读