首页 > 解决方案 > 将请求正文转换为 json Django Python

问题描述

下面是 python Django 中的一个视图和它给出的输出

代码

@csrf_exempt
def stk_push_callback(request):

    data = request.body
    print(data)

    got_data = json.loads(data.decode("utf-8"))

    result_code = got_data['Body']['stkCallback']['ResultCode']
    result_desc = got_data['Body']['stkCallback']['ResultDesc']

    print(' ')
    print('ResultCode: ', result_code)
    print(result_desc)
    print(' ')

    room = room_val()
    check_in = in_val()
    check_out = out_val()
    user = user_val()

    if result_code == 0:
        booking = book_room(user, room, check_in, check_out)
        print (booking)
    
        return render(request, 'booking/paymentcomplete.html')

    else:
        return render(request, 'booking/paymenterror.html')

输出print(data)

b'{"Body":{"stkCallback":{"MerchantRequestID":"9088-17223944-1","CheckoutRequestID":"ws_CO_310520212138262746","ResultCode":1032,"ResultDesc":"Request cancelled by user"}}}'

如何将输出转换为 json,以及如何访问该"ResultCode":1032值以进行进一步处理?问候。

标签: pythonjsondjango

解决方案


我用电话,很难解释更多。

import json
data = request.body
data_dict = json.loads(data.decode("utf-8")) 
print(data_dict['Body']['stkCallback']['ResultCode']) 

有关更多信息,请查看如何将字节类型转换为字典?回答。


推荐阅读