我有以下请求代码:
>>> 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
:
它打印出:
*** <QueryDict: {u'AmountInUSD': [u'40'], u'CreditCardLastFourDigits': [u'1111']}>
>>> AmountInUSD=40&CreditCardLastFourDigits=1111
### AmountInUSD=40&CreditCardLastFourDigits=1111
我该怎么做呢?在
在您的代码中,传入的请求已经被转换为一个
QueryDict
,它不是一个json字符串,这就是为什么json.loads
不能处理它。在其a
QueryDict
的原因是您将字典传递给了requests.post
,它将其作为表单编码数据正确地作为请求主体的一部分发布。在作为它的
QueryDict
对象,您可以像访问Python字典一样访问它:如果要将其转换回json,请尝试
^{pr2}$json.dumps(request.POST)
,或者在发送字典之前修改请求代码,将字典转换为json字符串:请求将
data
作为表单编码的数据发布。这就是你在deposit
中得到的。如果要发布JOSN,请在发布之前对data
进行编码。在相关问题 更多 >
编程相关推荐