我正在尝试发布以下数据。但我收到错误。可以请你看一下吗?非常感谢。
我正在使用 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}}'
data
和 apikey
已在字典中。那为什么我会收到错误?有什么想法吗?
postman 工作
最佳答案
使用 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/