Django JSONDecodeError异常值:预期值:第1行第1列(字符0)
我正在开发一个Django应用程序,我试图根据API的响应重定向,但我似乎找不到一种方法来获取响应的值 以下是回应:Django JSONDecodeError异常值:预期值:第1行第1列(字符0),django,django-models,django-views,django-forms,django-templates,Django,Django Models,Django Views,Django Forms,Django Templates,我正在开发一个Django应用程序,我试图根据API的响应重定向,但我似乎找不到一种方法来获取响应的值 以下是回应: { "Body": { "stkCallback": { "MerchantRequestID": "24915-30681242-1", "CheckoutRequestID": "ws_CO_150220211305438433
{
"Body": {
"stkCallback": {
"MerchantRequestID": "24915-30681242-1",
"CheckoutRequestID": "ws_CO_150220211305438433",
"ResultCode": 0,
"ResultDesc": "The service request is processed successfully.",
"CallbackMetadata": {
"Item": [
{
"Name": "Amount",
"Value": 1.00
},
{
"Name": "MpesaReceiptNumber",
"Value": ""
},
{
"Name": "TransactionDate",
"Value": 20210215130604
},
{
"Name": "PhoneNumber",
"Value":
}
]
}
}
}
找到了获取请求的方法,但它没有返回为dict
,而是返回一个str
,即使我使用了json.loads()
获取结果\u code
会抛出一个错误字符串索引必须是整数
def callback(request):
callback = json.dumps(request.body.decode('utf-8'))
body_data = json.loads(callback)
print(type(body_data)) #returns 'str'
result_code = body_data["Body"]["stkCallback"]["ResultCode"]
print(result_code) #returns string indices must be integers
return render(request, 'callback.html')
@josphat Gitogo-不应该是
resultcode=response['Body']['stkCallback']['resultcode']
try:
response = json.loads(request.body).decode('utf-8')
resultcode = response['Body']['stkCallback']['ResultCode']
except ValueError as v: # includes simplejson.decoder.JSONDecodeError
#log the exception or print it
假设回应=
{
"Body": {
"stkCallback": {
"MerchantRequestID": "24915-30681242-1",
"CheckoutRequestID": "ws_CO_150220211305438433",
"ResultCode": 0,
"ResultDesc": "The service request is processed successfully.",
"CallbackMetadata": {
"Item": [
{
"Name": "Amount",
"Value": 1.00
},
{
"Name": "MpesaReceiptNumber",
"Value": ""
},
{
"Name": "TransactionDate",
"Value": 20210215130604
},
{
"Name": "PhoneNumber",
"Value":
}
]
}
}
}
}
另外,我看到您的一个Value属性没有值
{
"Name": "PhoneNumber",
"Value":
}
请共享您的完整回溯。确保您从API调用返回JSON,并且此响应无效。JSON如何使用python将其转换为JSON?@JosphatGitogo-取决于您接收的数据类型。检查API发送给您的解决方案的数据类型,但它仍然抛出此错误
jsondecoderror位于/api/v1/online/lipa/callback/
异常类型:jsondecoderror期望值:第1行第1列(char 0)
@JosphatGitogo-检查我的更新代码