In web3.py, you can pass a Solidity struct as
For example:
contract TupleContract {
struct T { int x; bool[2] y; address[] z; }
struct S { uint a; uint[] b; T[] c; }
function method(S memory s) public pure returns (S memory) {
return s;
}
}
If you pass struct as a tuple, arguments must be in the same order as they are in Solidity source code.
You would encode this for a smart contract call as following
my_struct_t = (1, [False, False], ["0x0000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000"])
my_struct_s = (1, [1, 1], [my_struct_t, my_struct_t])
tuple_contract.functions.method(my_struct_s).transact({...})
See Web3.py documentation for more information.
As block explorers tend to be proprietary software, you need to contact the support desk of any block explorer to learn how to use their software, and this job should not be outsourced to the public community.