簡體   English   中英

使用python-requests發布數據

[英]post data using python-requests

我正在嘗試發布以下數據。 但是我遇到了錯誤。 你能看看嗎? 非常感謝。

我正在使用郵遞員發布相同的數據。 而且有效。

def _build_post_data(bike_instance):
    """
    data = {
        "apikey": "XXX",
        "data": {
            "created_at": "date_XX",
            "Price": "Decimal_XX"
        }
    }
    """
    data = {}
    raw_data = serializers.serialize('python', [bike_instance])
    actual_data = [d['fields'] for d in raw_data]
    data.update(
        {
            "apikey": XXX,
            "data": actual_data[0]
        }
    )
    return data

發布數據

bike = Bike.objects.get(pk=XXX)

data = _build_post_data(bike)

dump_data = json.dumps(data, cls=DjangoJSONEncoder)

requests.post(url, data=dump_data)

錯誤

u'{"error":{"message":"422 Unprocessable Entity","errors":[["The data field is required."],["The apikey field is required."]],"status_code":422}}'

dataapikey已經在字典中。 那為什么我會出錯? 任何想法?

郵遞員的作品

在此處輸入圖片說明

使用Postman,您將發送multipart/form-data請求,使用requests您將僅發送JSON (Postman中data字段的值),並且不包括apikey字段。

使用帶有JSON數據作為值之一的字典,並將其作為files參數傳遞。 它也可能用作data參數(發送為application/x-www-urlencoded ):

form_structure = {'apikey': 'XXXX', 'data': dump_data}
requests.post(url, files=form_structure)
# probably works too: requests.post(url, data=form_structure)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM