ФИЛЬТРИРОВАНИЕ АРРЕЯ БЕЗ УЧЕТА АРРАНГЕМНТА (Python)

Я пытаюсь сохранить эти данные из обратного вызова url, но расположение постоянно меняется, как мне получить данные без использования index

{"Body":{
    "stkCallback":{
        "MerchantRequestID":"106225-49293961-1",
        "CheckoutRequestID":"ws_CO_041120220958559137xxxxx768",
        "ResultCode":0,
        "ResultDesc":"The service request is processed successfully.",
        "CallbackMetadata":{
            "Item":[
                {"Name":"Amount","Value":1.00},
                {"Name":"MpesaReceiptNumber","Value":"QK438EQIOX"},
                {"Name":"TransactionDate","Value":20221104095914},
                {"Name":"PhoneNumber","Value":2547xxxxx178}
                ]
            }
        }
    }
}

Вот что я сделал

merchant_requestID = mpesa_body["Body"]["stkCallback"]["MerchantRequestID"]
print(merchant_requestID)
checkout_requestID = mpesa_body["Body"]["stkCallback"]["CheckoutRequestID"]
print(checkout_requestID)
result_code = mpesa_body["Body"]["stkCallback"]["ResultCode"]
print(result_code)
result_desc = mpesa_body["Body"]["stkCallback"]["ResultDesc"]
print(result_desc)
amount = mpesa_body["Body"]["stkCallback"]["CallbackMetadata"]["Item"][0]["Value"]
print(amount)
mpesa_receipt_number = mpesa_body["Body"]["stkCallback"]["CallbackMetadata"]["Item"][1]["Value"]
print(mpesa_receipt_number)
transaction_date = mpesa_body["Body"]["stkCallback"]["CallbackMetadata"]["Item"][2]["Value"]
print(transaction_date)
phone_number = mpesa_body["Body"]["stkCallback"]["CallbackMetadata"]["Item"][3]["Value"]
print(phone_number)
balance = ''

У одних транзакций будет баланс, у других нет, и именно здесь возникает ошибка из-за получения данных с помощью index.

Посоветуйте, как сохранить данные, а точнее список элементов без использования индекса.

Вернуться на верх