Decode log "data" in transaction

I am using Python celo sdk to interact with the Celo mainnet. I am extracting the log related to a specific smart contract using the “getFilterLogs” method. Example of the extracted log:
{‘address’: ‘0xc1548f5aa1d76cdcab7385fa6b5cea70f941e535’,
‘topics’: [‘0xc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82’, ‘0x000000000000000000000000d8763cba276a3738e6de85b4b3bf5fded6d6ca73’, ‘0x00000000000000000000000056d0ae52f33f7c2e38e92f6d20b8ccfd7dc318ce’, ‘0x0000000000000000000000000000000000000000000000000000000000000420’],
‘blockNumber’: ‘0x6307e9’,
‘transactionHash’: ‘0x120498ce6ca7c253f0dcc755498aa13e619b72126166f290e4d6e5664d3a1db8’, ‘transactionIndex’: ‘0x0’,
‘blockHash’: ‘0x561865c6a69f4868bb136378f07f1781aa63a5008a900011b60aeb09508a0a64’, ‘logIndex’: ‘0xe’,
‘removed’: False}
I am not sure how to extract the value of ‘data’ and each of the value for topics. Does anyone have any idea I can decode those data?

Hi @Tahlil

These pages in the Solidity docs can help you understand events, logs and topics from the EVM.

To decode the data, you will need the ABI of the contract that you are interacting with. You can read more about the ABI and encoding here