Sending raw transaction from web3py: TypeError: <lambda>() missing 4 required positional arguments: 'hash', 'r', 's', and 'v'

You need to sign the transaction before sending with your account that has ETH balance.

You need to use Signing middleware.

>>> from web3 import Web3, EthereumTesterProvider
>>> w3 = Web3(EthereumTesterProvider)
>>> from web3.middleware import construct_sign_and_send_raw_middleware
>>> from eth_account import Account
>>> acct = Account.create('KEYSMASH FJAFJKLDSKF7JKFDJ 1530')
>>> w3.middleware_onion.add(construct_sign_and_send_raw_middleware(acct))
>>> w3.eth.default_account = acct.address
# Now you can send a tx from acct.address without having to build and sign each raw transaction

sign_transaction returns SignedTransaction object while send_raw_transaction accepts raw transaction bytes. So change your last line to:

w3.eth.send_raw_transaction(t.rawTransaction)

You also probably want to save the result to a variable to track the transaction later.