如何从请求pos在我的视图中解析json

2024-05-14 13:34:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下请求代码:

>>> data
{'AmountInUSD': '40', 'CreditCardLastFourDigits': '1111'}
>>> r=requests.post('http://localhost:8000/api/v1.0/balance/deposit/', data=data)

下面是我试图解析json的方法,但是我一直得到一个ValueError: No JSON object could be decoded

^{pr2}$

它打印出:

*** <QueryDict: {u'AmountInUSD': [u'40'], u'CreditCardLastFourDigits': [u'1111']}>
>>> AmountInUSD=40&CreditCardLastFourDigits=1111
### AmountInUSD=40&CreditCardLastFourDigits=1111

我该怎么做呢?在


Tags: 方法no代码apijsonlocalhosthttpdata
2条回答

在您的代码中,传入的请求已经被转换为一个QueryDict,它不是一个json字符串,这就是为什么json.loads不能处理它。在

其a QueryDict的原因是您将字典传递给了requests.post,它将其作为表单编码数据正确地作为请求主体的一部分发布。在

作为它的QueryDict对象,您可以像访问Python字典一样访问它:

request.POST.get('AmountInUSD')
request.POST.get('CreditCardLastFourDigits')

如果要将其转换回json,请尝试json.dumps(request.POST),或者在发送字典之前修改请求代码,将字典转换为json字符串:

^{pr2}$

请求将data作为表单编码的数据发布。这就是你在deposit中得到的。如果要发布JOSN,请在发布之前对data进行编码。在

r = requests.post(url, data=json.dumps(data))

相关问题 更多 >

    热门问题