Couchbase Python SDK 3.0 connection issues

I’m trying to update expirytime on selected documents in a bucket using python SDK. I’m connecting to 3 node cluster of CE 6.0.0. I’m doing this way since query statement from the console doesn’t work. I tried following on the query console
UPDATE bucket META().expiration = 10*60 where META().id like 'key_prefix%';
Though the query runs, document expiration still reamins 0

Since my local SDK got updated to v3.0, I’m referring v3.0 SDK documentation. Documentation says that I can use query parameters on connection string. However, connection attempt like
Cluster('couchbase://x.x.x.x?compression=inout', ClusterOptions(PasswordAuthenticator("username", "password")))
gives
couchbase.exceptions.CouchbaseException: <RC=0x3F0[LCB_ERR_CONTROL_INVALID_ARGUMENT (1008)], Couldn't create instance. Either bad credentials/hosts/bucket names were passed, or there was an internal error in creating the object, C Source=(src/bucket.c,1116)>
Conection is successful if I remove query parameter from the connection string. I followed the initialization as per the documentation.
Attempting to open the bucket
coll = cluster.bucket("my_bucket").default_collection()
gives another error…
couchbase.exceptions.BucketNotFoundException: <RC=0xD2[LCB_ERR_BUCKET_NOT_FOUND (210)], There was a problem while trying to send/receive your request over the network. This may be a result of a bad network or a misconfigured client or server, C Source=(src/bucket.c,1209)>

If I don’t open the bucket and proceed to query directly…
docs = cluster.query("""SELECT META().id from my_bucket where meta().id like $id AND meta().expiration=0""", QueryOptions(named_parameters={"id": "prefix.%"}))
I’m lost here. This used to work with previous SDK with APIs like cluster.open_bucket(). Either the doc is wrong or I’m missing something completely.

Does anyone have a working python code using v3? Appreciate your help.