在 python 中的 aws 命令中添加双引号

Add double quotes in aws command in python

下面是我需要的输出。

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

我正在尝试使用 Python 实现此语法,但遇到一些语法错误。我卡住了。

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

请注意,我在 Shell 脚本 中使用的类似语法及其工作正常。

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

谁能帮帮我?

这可能与其他问题类似,但我需要在命令中使用额外的双引号。

UPDATE:

我可以使用下面的命令得到类似 "email = "test@test.com""" 的东西。

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

但我需要在电子邮件 ID 的双引号前加一个反斜杠。

谢谢!

尝试使用 str.format

例如:

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", "test@test.com",  Users[0].Username)
print(cmd)

解法:

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

\\" 将添加反斜杠和双引号。:)