python - 使用 python-requests 发布数据

标签 python django python-requests

我正在尝试发布以下数据。但我收到错误。可以请你看一下吗?非常感谢。

我正在使用 Postman 发布相同的数据。并且它有效。

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 工作

enter image description here

最佳答案

使用 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)

关于python - 使用 python-requests 发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33955036/

相关文章:

django - 统一码编码错误 : 'ascii' codec can't encode character

javascript - tail -f 在浏览器中

rest - 如何让客户端接受服务器的SSL证书

python - 如何在matplotlib中对齐注释文本和图例?

Python:在继续之前完成对列表的迭代检查?

django - 在 Django 中,如何使用项目范围的静态文件?

python - 请求 - 在发出请求之前确定参数化 url,以包含在 Referer header 中

当 curl 工作时,python 请求模块不工作。我究竟做错了什么?

python - 在 python 上更新 pip 时出现问题(Visual Studio 代码)

python - 使用 Python 流式传输音频(没有 GStreamer)