Jayesh Dhandha
Jayesh Dhandha

Reputation: 2129

Add double quotes in aws command in python

Below is my required output.

aws cognito-idp list-users --region "us-west-2" --user-pool-id "us-west-2_TEST" --filter "email = \"[email protected]\"" --query 'Users[0].Username' --output text

I am trying to achieve this syntax using Python but getting some syntax error. I am stuck.

aws cognito-idp list-users --region "+region+" --user-pool-id "+user_pool_id+" --filter \"email = \"+email+\"\" --query 'Users[0].Username' --output text

Please note that similar syntax i am using in Shell Script and its working fine.

aws cognito-idp list-users --region "$region" --user-pool-id "$userpool_id" --filter "email = \"$email\"" --query 'Users[0].Username' --output text

Anyone can help me?

This may be similar with other questions, But i need extra double quotes inside command.

UPDATE:

I am able to get something like "email = "[email protected]"" using below command.

"aws cognito-idp list-users --region "+region+" --user-pool-id "+user_pool_id+" --filter \"email = \""+email+"\"\" --query 'Users[0].Username' --output text"

But I need an extra backslash before double quotes of email id.

Thanks!

Upvotes: 0

Views: 1163

Answers (2)

Jayesh Dhandha
Jayesh Dhandha

Reputation: 2129

Solution:

"aws cognito-idp list-users --region "+region+" --user-pool-id "+user_pool_id+" --filter \"email = \\\""+email+"\\\"\" --query 'Users[0].Username' --output text"

\\" will add backslash along with double quotes. :)

Upvotes: 0

Rakesh
Rakesh

Reputation: 82785

Try using str.format

Ex:

cmd = 'aws cognito-idp list-users --region "{0}" --user-pool-id "{1}" --filter \"email = \"{2}\" --query "{3}" --output text'.format("us-west-2", "us-west-2_TEST", "[email protected]",  Users[0].Username)
print(cmd)

Upvotes: 1

Related Questions